/*
In principle, a derived class inherits every member of a base class except:

• its constructor and its destructor
• its operator=() members
• its friends

Although the constructors and destructors of the base class are not inherited themselves, its default constructor
(i.e., its constructor with no parameters) and its destructor are always called when a new object of a derived class
is created or destroyed.
*/

#include <iostream>
using namespace std;

class mother {
      public:
             mother ()
             { 
                 cout << "mother: no parameters\n"; 
             }
             mother (int a)
             { 
                 cout << "mother: int parameter\n"; 
             }
};

class daughter : public mother {
      public:
             daughter (int a)
             {   
                 cout << "daughter: int parameter\n\n"; 
             }
};

class son : public mother {
      public:
             son (int a) : mother (a) 
             {
                 cout << "son: int parameter\n\n"; 
             }
};

int main () {

    daughter cynthia (0);
    son daniel(0);

    std::cin.get();
    return (0);       
}
