- 博客(3)
- 收藏
- 关注
原创 C++构造函数体内初始化与列表初始化的区别
本文探讨C++构造函数体内初始化与列表初始化的区别: 结论是: 若某个类(下文的class B)有一个类成员是类类型(下文的class A),那么 1、若类B通过构造函数体内初始化,会先调用类A的默认构造函数(无参构造函数),再调用类A的赋值运算符; 2、若类B通过初始化列表去初始化,则只调用类A的拷贝构造函数。 另外,虽然对于成员类型是内置类型的情况,通过上述两种情况去初始化是相同的,但是为了标...
2019-06-24 15:19:03
5387
6
原创 你必须知道的C++继承内存分布结构
此文针对C++多种继承方式下的内存分布结构进行一系列验证!若有错误,感激指正! 由于此文的重点在于内存分布,简便起见,所以没有对内存对齐进行详细的阐明。 工具 visual studio 2019 (64位) 预备工作 第一步 右键你的源文件,选择“属性”,弹出第二步所示的对话框。 第二步 选择“命令行”,并在右边的“其他选项”中输入如下格式: /d1 reportAllClassLay...
2019-06-19 15:24:56
1348
原创 《Effective C++》读书笔记之尽量以const,enum,inline替换#define
尽量以const,enum,inline替换#defineconst和enum替代#defineinline替换#define const和enum替代#define 当我们以常量const替换#define的时候,有两种特殊情况需要特别注意: 定义常量指针 由于常量定义式通常被放在头文件中,以便被不同的源码含入,因此有必要将指针声明为const,而不只是指针所指之物,否则多个源文件包含同一个头...
2019-04-18 14:44:06
323
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅