美文网首页
《C++沉思录》学习笔记一

《C++沉思录》学习笔记一

作者: Yep卖萌的小贱贱 | 来源:发表于2018-05-17 15:29 被阅读0次

只有在程序通过指向基类对象的指针或者基类对象的引用调用虚函数时,才会发生运行时的多态现象。

类设计者的核查表
1.你的类需要一个构造函数吗?
2.你的数据成员是私有的吗? (length的安全性,能否随时表现正确的值,选择一种规范来使用)
3.你的类需要一个无参构造函数吗? (定义一个有参构造函数,不定义无参构造函数来限制类的生成方法)
4.是不是每个构造函数初始化所有的数据成员?(尽量为每一个数据成员设置经过明确定义的值)
5.你的类需要析构函数吗?(该类是否分配了资源,资源会不会由成员函数自动释放)
6.你的类需要一个虚析构函数吗?(绝不会用作基类的类是不需要虚析构函数的)
7.你的类需要复制构造函数吗?(可以把复制构造函数/复制操作符定义为私有的)
8.你的类需要一个赋值操作符吗?(类X的赋值由X::operator=来定义。通常,operator=应该返回一个X&,并且由return *this;结束以保证与内奸的赋值操作符一致)
9.你的赋值操作符能正确的将对象赋给对象本身吗?(源对象和目标对象是同一个时,容易出错)
10.你的类需要定义关系操作符吗?
11.删除数组时你记住了用delete[]吗?(在删除任何类型的数组时使用[]格式是很好的习惯)
12.在复制构造函数和赋值操作符的参数类型中加上const了吗? X::X(const X&) X::operator=(const X&)
13.如果函数有引用参数,它们应该是const引用吗?
14.记得适当地声明成员函数为const的了吗?

【const对象只能调用const成员函数,原因是调用中隐含有this指针,const转非const会报错】
【const成员函数,隐含的this指针也带const】

【构造函数不能为虚函数,首先虚函数是有一个虚函数表的,有一个虚函数表指针。我们现在新建一个类的时候,先分配北村空间,然后用构造函数初始化所有的内容,这里我们构造函数是虚函数,没法构造,也就没法获得虚函数表指针】

相关文章

  • 《C++沉思录》学习笔记一

    只有在程序通过指向基类对象的指针或者基类对象的引用调用虚函数时,才会发生运行时的多态现象。 类设计者的核查表1.你...

  • 《C++沉思录》学习笔记二

    代理类: 我们需要一个容器,来存储类型不同但彼此相关的对象。 1.抽象基类,所有成员函数为纯虚函数,不能创建这种类...

  • 沉思录—学习笔记

    在马克西莫斯身上,我学到了内心自我掌控的能力,并不会被心外之物所影响与左右。 不论遇到什么样的环境,包括卧病不起在...

  • 《第一哲学沉思录》读书笔记

    《第一哲学沉思录》 以下是关于笛卡尔《第一哲学沉思录》的笔记,主要内容在对第五个沉思的分析。虽然文章比较简陋支离,...

  • 《C++沉思录》读书笔记

    1.小项目比大项目效率可能更高,接口开发2.重新思考类设计和封装的合理性(检查出错和漏洞)3.做核查表(类,数据测...

  • 2023-02-08

    《C++沉思录》真是本好书,书中句柄部分的内容,增加了我对binder通讯c++部分思想的理解。

  • 抽象《c++沉思录》

    抽象是有选择的忽略。比如你要驾驶一辆汽车,但你又必须时时关注每样东西是如何运行的:发动机、传动装置、方向盘和车轮之...

  • 沉思录笔记

    人是一种理性动物,也是一种政治动物,一种社会动物。 人作为宇宙的一部分、个人作为社会的一部分,对于来自整体的一切事...

  • <沉思录>笔记

    1.卷一,是讲述作者从亲人朋友或者文人伟人身上看到的特点。参照此,我也对比了自己身边的亲人朋友的特点,进行系统的总...

  • 《沉思录》笔记

    作者以宇宙的意志为行事准则,但不免将宇宙人格化了含有一种以人为中心的沙文主义。同样像所有哲学家提倡的那样,做一个精...

网友评论

      本文标题:《C++沉思录》学习笔记一

      本文链接:https://www.haomeiwen.com/subject/xmhvdftx.html