title: How can the member objects be changed at run time in composition?
body: <p>From <strong>Thinking in C++ Vol. 1</strong> (P-33):</p>
  
  <blockquote>
    <p>Composition comes with a great deal of flexibility. The member
    objects of your new class are usually private, making them
    inaccessible to the client programmers who are using the class. This
    allows you to change those members without disturbing existing
    client code.<br>
    <strong><em>You can also change the member objects at runtime, to
    dynamically change the behavior of your program. Inheritance,
    which is described next, does not have this flexibility since the
    compiler must place compile-time restrictions on classes created
    with inheritance.</em></strong></p>
  </blockquote>
  
  <p>How can we change the member objects at run time in composition?<br>
  Aren't the objects included when the class declaration are written?</p>
  
  <p><code>class car</code><br>
  <code>{</code><br>
  <code>private:</code><br>
  <code>engine obj;</code><br>
  <code>}</code></p>
  
  <p>So, here the class <code>car</code> contains the object of class <code>engine</code>. How can we change this at runtime?</p>
  
  <p>Or am I missing some point?</p>