title: C++, Copy constructor declaration / definition
body: <p>If some class does NOT perform dynamic memory allocation, it is only sufficient to declare a copy constructor?</p>
  
  <p>See the following example, please</p>
  
  <p>Instead of:</p>
  
  <pre><code>class A
  {
      protected :
              int a;
      public:
              A(const A &amp;source)
              {
                      a = source.a;
              }
  
  
  };
  
  class B: public A
  {
      protected :
              int b;
      public:
              B(const B &amp;source): A(source)
              {
                      b = source.b;
              }
  };
  </code></pre>
  
  <p>use:</p>
  
  <pre><code>class A
  {
      protected :
              int a;
      public:
              A(const A &amp;source);
  
  };
  
  class B: public A
  {
      protected :
              int b;
      public:
              B(const B &amp;source);
  
  };
  </code></pre>
  
  <p>Could the second variant sometimes cause problems? Some example would be helpfull.</p>