c/c++语言开发共享C++中强制类型转换的应用(第一次)

1.派生类作为实参赋给父类形参 一般的父类只继承子类中共同的部分,子类的新方法会被自动忽略而父类也就无法调用子类的新方法了。 问题:用父类的形参来访问子类的新方法。 强制类型转换(这个可能会有风险,但是编译器不报错) class Animal{ public: void Live(){ cout<< …

  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, 强制转化
    如果父类指针指向子类对象,需要把父类的指针转化为指向子类对象的指针,来访问子类扩展成员这就是所谓的向下转。

  但是,向下转型是危险的,因为父类指针有可能没有指向子类对象。//这样试过,编译器是不报错的,但是按道理是不好这样强转了。
C++中强制类型转换的应用(第一次)//dog没有继承animal

 

C++中强制类型转换的应用(第一次)

这样测试下来就是不报错。

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/599832.html

(0)
上一篇 2021年5月9日
下一篇 2021年5月9日

精彩推荐