Week 4

Inheritance - Ch. 15

  • Review on aggregation "has a" relationship
  • Introduction to inheritance "is a" relationship
  • Base Class "parent"
  • Derived Class "child"
  • Class Hierarchies
  • Access Specifier - private protected public
  • Invoking Parent Constructors - passing arguments
  • Calling Parent Functions
  • Redefining Parent Functions
class Base {
  private:
    // base private member variables
  protected:
    // base protected member variables
  public:
    Base() { // base default constructor }
    ~Base(){ // base destructor }
};
  
// derived class inherits all members and functions
// but not constructors or destructor
// Syntax
//class child : access_specifier parent {...};

class Derived : public Base {
  private:
    //derived private member variables
  protected:
    // derived protected member variables
  public:
    Derived() : Base() {
      // derived default constructor, invokes parent
    }
    ~Derived() {
      // derived destructor, base destructor invoked automatically
    }
};