The compiler automatically calls the base class constructor before the derived class constructor. You can specify which base class constructor to call by passing arguments to it in the derived class constructor definition. A derived class can override a base class member function by defining a function of the same name and parameters in the derived class. To call the overridden base class function, use the scope resolution operator to specify the base class. Making a base class virtual prevents duplication of inherited members when it is used as a common ancestor in multipath inheritance.