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

2020-04-09 16:01:23来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

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

  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

 

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


原文链接:https://www.cnblogs.com/SDcgy/p/12670124.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:C++中strcpy_s()

下一篇:2020年04月10日UCF Local Programming Contest 2017