博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
private继承如何转换
阅读量:5256 次
发布时间:2019-06-14

本文共 474 字,大约阅读时间需要 1 分钟。

《effective c++》中提到:

如果class之间的继承关系是private,编译器不会自动将一个derived class对象转换为一个base class对象。

如果不能转换那多态就没有意义了,所以肯定是可以转换的,不过转换发生在derived class内部

class B{public:    virtual void write(){   puts("B::write");   }};class D:private B{private:    virtual void write(){   puts("D::write");   }public:    static B* create()  {   return new D();     }//private继承,所以转换必须在class内部};int main(){    B* b=D::create();    b->write();//输出D::write}

 

转载于:https://www.cnblogs.com/poluner/p/6658987.html

你可能感兴趣的文章
poj 3164 最小树形图(朱刘算法)
查看>>
服务器内存泄露 , 重启后恢复问题解决方案
查看>>
android一些细节问题
查看>>
KDESVN中commit时出现containing working copy admin area is missing错误提示
查看>>
利用AOP写2PC框架(二)
查看>>
【动态规划】skiing
查看>>
java定时器的使用(Timer)
查看>>
ef codefirst VS里修改数据表结构后更新到数据库
查看>>
boost 同步定时器
查看>>
[ROS] Chinese MOOC || Chapter-4.4 Action
查看>>
简单的数据库操作
查看>>
iOS-解决iOS8及以上设置applicationIconBadgeNumber报错的问题
查看>>
亡灵序曲-The Dawn
查看>>
Redmine
查看>>
帧的最小长度 CSMA/CD
查看>>
xib文件加载后设置frame无效问题
查看>>
编程算法 - 左旋转字符串 代码(C)
查看>>
IOS解析XML
查看>>
Python3多线程爬取meizitu的图片
查看>>
树状数组及其他特别简单的扩展
查看>>