继承的一点认识

在类的继承当中,如果派生类继承自父类。

派生类想要调用父类的函数只需要
 1 class A{
 2 public:
 3        computePay(); 
 4 }
 5 
 6 class B:public A
 7 {
 8 public:
 9         computePay();
10 }
11 B b1;
12 A a1;
13 b1.A::computePay();
14 b1.computePay();

但假如使用了指针指向一个类。

1 A *p;
2 B *b;
3 B b1;
4 p = &b1;
5 b = &b1;
6 p->computePay(); //调用的是 A的函数
7 b->computePay(); //调用的是B的函数

到底调用哪个函数,视指针的原始类型而定。

由此可以得出三个结论:

一、以基类指针指向衍生类对象,由该指针只能调用基类所定义的函数

二、如果以衍生类指针指向一个基类对象,要先做显示的转型动作(不建议使用)

三、基类和衍生类都定义了相同名称的成员函数,透过对象指针调用成员函数时,视指针的原型而定。

猜你喜欢

转载自www.cnblogs.com/bohat/p/9221330.html