子类和父类指针的问题,指向父类的指针,指向子类时候,能够使用属于父类的部分;而指向子类的指针,不能再指向父类
#include<iostream>
using namespace std;
class father
{
public:
father(int a = 12) : fa(a) {};
int fa = 12;
};
class son : public father
{
public:
son(int b = 2) : so(b) {};
int so ;
};
int main()
{
//父类的指针能指向子类
father * f = new son;
cout << "父类的成员" << f->fa << endl;
//错误,父类的指针虽然指向子类,但是只能访问父类的成员
//cout << f->son << endl;
//错误,因为指向儿子的不能指向父亲
//父类是人,子类是张三,指向人的可以指向张三,但是指向张三的不能指向整个人类
//因为张三属于人类,则指向张三的父类指针,会指向张三身上人类都有的特质,也就是父类有的数据
//比如上面的父类指针指向子类,但是只能调用父类的成员fa ,而不能调用子类的so
//son * s = new father;
}