组合composition has a

1、queue->deque 设计模式:adapter

queue开放deque的某些功能,并可以改名

template <class T>
class queue{...protect:deque<T> c;//底层容器public:void pop(){c.pop_tront;}bool empty() const{return c.empty();}
}

2、composition下的构造和析构

container->component

构造:container构造函数先调用component默认构造函数,然后再执行自己(由内而外)

如果需要指定component构造函数,需要使用初始化列表写法

container::container(..):component(){};//红字是编译器加上的,如果需要自己指定构造函数就需要自己加上参数

析构:container析构函数先执行自己,再调用component析构函数(由外而内)

container::~container(){... ~component();}

3、内存大小

queue占用内存大小=deque占用内存大小+其他部分占用内存大小

委托 delegation(composition by reference)

1、对外接口类永远不需要再编译,只需要改变指针指向的类。这种写法也叫编译防火墙

左边对外不变handle,右边的实现可以改变body,StringRep*可以指向不同的实现类

2、三个abc指向同一个hello,实现共享内存.

如果需要修改a,拷贝一份hello出来让a修改,不影响bc.

继承Inheritance is a

1、子类对象有父类成分

2、构造和析构

子类构造先调用父类default构造函数,再执行自己(由内而外)

Derived::Derived():Base(){...}

子类的析构函数先执行自己,再调用父类的析构函数(由外而内)

Derived::~Derived(){...~Base()}

父类的析构函数必须是virture

侯捷C++->组合与继承相关推荐

  1. C++的沉迷与爱恋——侯捷

    每年的 09/28 於我都是一个特殊的日子 -- 不只是因为教师节.今年很特殊地没有普天同庆,那麽我就写篇文章自己庆祝一下好了. 我於今年七月发表了一本着作<多型与虚拟>和一本译作 < ...

  2. 【C++面向对象程序设计——侯捷大师】心得摘要

    侯捷大师讲的真好,很多模糊的知识点,都得到了解决.感觉像是相见恨晚!非常感谢侯捷老师的启迪!谢谢啦!非常推荐萌新去学习学习! 下面是侯捷大师的<面向对象程序设计>课程的一些我觉得重要的摘要 ...

  3. 侯捷C++八部曲笔记(四、C++2.0新特性)

    侯捷C++八部曲笔记(四.C++2.0新特性) 关键字 noexcept override final decltype =default, =delete nullptr auto explicit ...

  4. From COM to COM 侯捷

    From COM to COM -- 侯捷 摘要: 本文简介 C++ Object Model 和 Component Object Model 的基本概念,并引介 四本书籍: 1. Inside T ...

  5. 侯捷老师整理||IT专业术语中英对照表

    侯捷老师整理||IT专业术语中英对照表 百度文库的原文,侯捷老师整理的中英单词,真的对我们学习很有帮助 由于老师的网站已经失效了,所以就是从网上搜索来的,没有注明转载. 一群性质相近同的「东西」,如果 ...

  6. 【C++】侯捷C++面向对象高级编程(下)

    转换函数(conversion function) 可以把"这种"东西,转化为"别种"东西. 即Fraction --> double class Fra ...

  7. 侯捷老师 c++面向对象编程(上)

    (本博客是笔者根据侯捷老师的课程进行的总结,便于自己复习,也分享于网上,便于和更多人学习交流,若有侵权,请告删,若有误,请不吝赐教)(图来自于pdf文档,需要的朋友可以在评论区留言) 主要分为两章: ...

  8. C++的沉迷与爱恋 from 侯捷

    最近读了不少侯捷的书,站在巨人的肩膀上力不能及,只希望追逐之旅有所受益! C++的沉迷与爱恋 作者:侯捷 1998.09.28 发表 每年的 09/28 於我都是一个特殊的日子 -- 不只是因为教师节 ...

  9. 侯捷面向对象高级编程(二)

    侯捷面向对象高级编程(二) 转换函数 转换函数没有返回值,返回值就是double即函数名,不需要自己写 因为转换函数一般不会改变其中内容,所以要加const限定 两条路都可以走,就回产生歧义,报错 e ...

  10. C++11新特性选讲 语言部分 侯捷

    C++11新特性选讲 语言部分 侯捷 本课程分为两个部分:语言的部分和标准库的部分.只谈新特性,并且是选讲. 本文为语言部分笔记. 语言 Variadic Templates move semanti ...

最新文章

  1. 再谈 Devstack(Rocky)
  2. python_redis模块
  3. IBM MQ 使用一例
  4. 云计算,拼的就是运维
  5. memcache和memcached的区别
  6. [转]详解HTTP包
  7. ElasticSearch、Logstash和Kiabana三个开源工具。
  8. 六种方式实现hibernate查询
  9. QT+OpenGL中glTexImage2D不生效问题
  10. QQ批量自动登录程序的设计
  11. delphi中webbrowse控件中模拟点击文本超链接_游戏中lt;控件gt;的思考
  12. Perl+批处理实现半自动批量生成动态通讯组
  13. android 自动校准时间,Android客户端怎么同步校准服务器上的时间
  14. uni-app 极光推送
  15. java微信新增永久素材_微信公众号开发之新增永久图文素材(十)
  16. w10启动无线网服务器,Win10系统怎么开启无线wifi_w10开启wifi图文教程
  17. php表格整体怎么移动,超级表格新版移动端操作指南
  18. Error: Canceled future for execute_request message before replies were done
  19. php 数字 字母组合,php随机生成数字字母组合的方法_php技巧
  20. 全国大学生智能汽车竞赛硬件篇(二)—电磁信号采集部分

热门文章

  1. 汉马盛况精彩纷呈,健康跑向未来
  2. 谷歌chrome浏览器ERR_SPDY_PROTOCOL_ERROR错误
  3. 关于工业物联网的10个笑话
  4. 低代码开发平台有什么价值
  5. 斯坦福大学报告:中国AI论文引用率首次超过美国
  6. 捍卫自由的互联网,对 Web3 说不
  7. 手机远程管理服务器软件,远程控制软件 手机远程管理服务器
  8. 如何在 Mac 上打开“查找”?
  9. 快速蒙版应用——撕纸效果
  10. osi七层模型_每天学一点教你巧记OSI七层网络模型