1.派生类作为实参赋给父类形参
一般的父类只继承子类中共同的部分,子类的新方法会被自动忽略而父类也就无法调用子类的新方法了。
问题:用父类的形参来访问子类的新方法。
强制类型转换(这个可能会有风险,但是编译器不报错)
class animal{
public:
void live(){
cout<<” living “<<endl;
}
};
class dog : public animal{
public:
void jump(){
cout<<” jump “<<endl;
}
};
animal * b = new dog;
((animal* )b) -> jump(); //ok, 强制转化
如果父类指针指向子类对象,需要把父类的指针转化为指向子类对象的指针,来访问子类扩展成员这就是所谓的向下转。
但是,向下转型是危险的,因为父类指针有可能没有指向子类对象。//这样试过,编译器是不报错的,但是按道理是不好这样强转了。//dog没有继承animal
这样测试下来就是不报错。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/599832.html