父类指针指向子类对象
B *b=new B();
A *a= b;//A是父类,B是子类
1.函数调用
(1)父类指针指向子类实例对象,调用普通重写函数时,会调用父类中的函数。
因为声明的是父类指针,因此该指针不能够访问子类的成员,而只能访问父类的成员。
(2)调用被子类重写虚函数时,会调用子类中的函数。
注意:
(1)父类指针指向子类时,没有问题,因为父类有的,子类都有,不会出现非法访问问题,也是面向对象特性中多态性的体现(该指针可以调用子类成员,从而使父类指针具备“ 多种形态 ” )。
(2)子类指针指向父类的话,一旦访问子类特有的方法函数或者成员变量,就会出现非法,因为被子类指针指向的由父类创建的对象,根本没有要访问的那些内容,那些是子类特有的,只有用子类初始化对象时才会有.
(2)子类指针指向父类的话,一旦访问子类特有的方法函数或者成员变量,就会出现非法,因为被子类指针指向的由父类创建的对象,根本没有要访问的那些内容,那些是子类特有的,只有用子类初始化对象时才会有.