![](https://img-blog.csdnimg.cn/20210926161825724.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C++沉思录
文章平均质量分 53
C++浅见思考
uxlike
自由
展开
-
二阶构造模式
为什么需要二阶构造模式? 1. 构造函数只能保证对象构造时被调用,不能保证一定构造成功(可能中途意外退出,此时得到合法的半成品对象); 2. 构造函数没有返回值,外部无法判断对象是否构造成功(半成品对象存在安全隐患);原创 2021-11-16 15:15:26 · 840 阅读 · 0 评论 -
操作符重载函数
- 操作符重载的本质是通过函数扩展操作符的功能- 操作符重载函数使用`operator`关键字- 全局函数和成员函数都可实现操作符的重载,二者同时存在时,优先使用成员操作符重载函数- 成员操作符重载函数比全局操作符重载函数少一个参数- 成员函数操作符重载函数不需要友元,对类封装性更好- 操作符重载遵循函数重载规则原创 2021-10-03 19:07:58 · 405 阅读 · 0 评论 -
const成员变量、const成员函数与const对象
const成员变量为只读变量,只能通过初始化列表初始化 const成员函数不能直接改写成员变量的值,并且只能调用const成员函数 const对象为只读对象,只能调用const成员函数,非const对象也可以调用const成员函数原创 2021-09-30 18:52:32 · 1265 阅读 · 0 评论 -
类的静态成员变量与函数
静态成员变量和静态成员函数都是类所有,对象共享,既可以通过类名访问,也可以通过对象访问。通过类名访问的前提是该变量是公有的,静态成员变量需要在类外单独分配空间,静态成员函数只能访问静态成员变量。原创 2021-09-29 12:29:03 · 296 阅读 · 0 评论 -
继承之抽象类和接口
1. 虚函数在父类中必须实现,而纯虚函数在父类中不实现,纯虚函数实现后就有了虚函数;2. 拥有纯虚函数的类就是抽象类,抽象类不能定义对象,若子类不实现纯虚函数,则子类也成为抽象类;3. 接口也是抽象类,但接口只有纯虚成员函数。原创 2021-09-29 10:06:08 · 288 阅读 · 0 评论 -
继承之同名覆盖、函数重写与多态
1. 同名覆盖是继承时发生在父类和子类之间,子类同名成员覆盖(屏蔽)父类同名成员的现象;2. 函数重写也是同名覆盖,函数重写多态实现才有意义,C++通过`virtual`支持多态;3. 多态是面向对象组件化程序设计的基础特性原创 2021-09-28 21:49:48 · 1046 阅读 · 0 评论 -
继承之父子类赋值兼容性
赋值兼容性:子类可以当成父类使用原创 2021-09-28 19:21:22 · 367 阅读 · 0 评论 -
C++继承之public private protected
C++类中经常会用到3个关键字:`public`,`private`,`protected`,用以限定访问级别以及继承方式。其中,用作访问级别限定时修饰的是**类内成员**,而用作继承方式时修饰的是**类名**。原创 2021-09-28 16:30:55 · 442 阅读 · 0 评论