title: Does the default assignment operator call operator= on all members?
body: <p>And similarly, does the default copy constructor call the copy constructor on all members?  For example, if a class has a non-POD member like so:</p>
  
  <pre><code>class A
  {
      std::string str;
  };
  </code></pre>
  
  <p>...will the default compiler-generated copy constructor and assignment operator work correctly?  Will they call the string's copy constructor and <code>operator=</code> or will they just make a bitwise copy of member variable <code>str</code>?  </p>
  
  <p>In other words, does having a <code>std::string</code> member mean this class needs a user-implemented copy constructor and assignment operator?</p>