博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
私有继承的一些作用
阅读量:6252 次
发布时间:2019-06-22

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

先给结论:

1.private继承就是一种纯粹的实现技术 : 意味着老子继承你,纯粹是看中了你里面的某些函数实现罢了,不想跟你有别的关系;        2.一般来说私有继承,与复合类的作用类似,可以互换(复合类更容易理解)        3.这个新的类将不会与父类指针有关系(接口都变private了)

与public继承的区别是 父类的所有接口都不可用了(变为private) ,换句话说:

class B{};class D : private B{}; //privateD d;B *pb =  &d; //这里将编译出错; 既然父类的所有接口都是private了. 那么 pb 又有什么意义呢?

通过上面可知与public继承的区别了; 那private继承用来干嘛??

比如有这么一个时间类 , 另一个widget也想有超时的功能:

class Timer{public:    virtual void timeout(){ cout << __FUNCTION__ << endl;} //用于计算超时功能};class Widget: private Timer{   //private 继承private:                      //这里也改private 或许比较好,如果是public接口,有可能不太好哦.客户误意味widget居然有超时!    virtual void timeout() {           Timer::timeout();     //调用父类的超时功能        cout << __FUNCTION__ << endl; //干自己的事    }};

像类似这种情况下就可以使用 private 继承 ;

如果改成public 继承或许有些奇怪, 比如: Timer *pt = new Widget ??? 好像两者没啥关系呢.

最后: private继承意味着,俺只想获取某些函数实现;

转载地址:http://owfsa.baihongyu.com/

你可能感兴趣的文章
数据分析师到底在做什么?
查看>>
pt-heartbeat工具监控MySQL复制延迟
查看>>
指尖下的js —— 多触式web前端开发之三:处理复杂手势(转)
查看>>
spring boot项目配置文件集合
查看>>
cube-ui的用法
查看>>
2015.4.21 SetWindowPos函数用法
查看>>
2011-12-14 调用cmd并获得输入输出+网络访问
查看>>
TCP定时器详解
查看>>
if判断,switch语句
查看>>
Arduino入门之前
查看>>
zoj 1904 Beavergnaw 计算圆柱和圆台的体积
查看>>
整理了一份招PHP高级工程师的面试题(转)
查看>>
学习Raft算法的笔记
查看>>
第十一周编程总结
查看>>
darknet源码学习
查看>>
dl,dt,dd的用法
查看>>
外面的世界很精彩,然而等待你的人却可能已不在
查看>>
华为oj 挑7
查看>>
【吴恩达机器学习】学习笔记——1.5无监督学习
查看>>
使用pjax实现类似github无刷新更改页面url
查看>>