title: C++11: how List-initialization assign values in a user defined object?
body: <p>I have a class Library, and it includes a member object shelf1 from another class Shelf.</p>
  
  <p>The Class Shelf have several variables, say:</p>
  
  <pre><code>class Shelf {
  int height;
  int width;
  int materialType;
  String shelfName;
  }
  </code></pre>
  
  <p>Now in Library, I want to initialize the member object shelf1 in the Library declaration:</p>
  
  <pre><code>Shelf shelf1{100, 200};
  Shelf shelf2{100, "fiction"};
  </code></pre>
  
  <p>Can they work, and how List-initialization works for the order of variables?</p>
  
  <p>[Update]
  Those code are for explanation of my question (I do have a similar code in my real world. But it is too complicated to put here. So I simplify my question).  </p>