Shadow base class function in its two children classes : class hierarchy « Class « C++ Tutorial






#include <iostream>
#include <stdlib.h>
using namespace std;

class BaseClass {

public:
       void f(float);
};

void BaseClass::f(float price)
{
  cout << "the base class!\n";
  cout << price * .075f;

}

class DerivedClass1:public BaseClass
{
public:
       void f(float);

};
void DerivedClass1::f(float price)
{
  cout << "the child class 1\n";
  cout << price * .010f << endl;
}

class DerivedClass2:public BaseClass
{
public:
  void f(float);

};

void DerivedClass2::f(float price)
{
  cout << "the child class 2\n";
  cout << price * .005f << endl;
}

int main()
{
  DerivedClass1 myclass;
  DerivedClass2 anotherclass;

  myclass.f(100);
  anotherclass.f(100);

  return 0;
}
the child class 1
1
the child class 2
0.5








9.7.class hierarchy
9.7.1.A simple class hierarchy.
9.7.2.A multilevel hierarchy
9.7.3.Deriving ADTs from other ADTs
9.7.4.Use typeid to test type equality
9.7.5.Multiple base class constructing and destructing
9.7.6.Three level inheritance
9.7.7.Overload across class hiearchy
9.7.8.Shadow base class function in its two children classes
9.7.9.Reference another class in member function
9.7.10.Shadow function with the same name in base class
9.7.11.Inherit protected fields
9.7.12.Call constructor from base class