- 索引
- 1、指针与引用的区别
- 2、尽量使用C++风格的类型转换
- 3、不要对数组使用多态
- 4、避免无用的缺省构造函数
- 4.1 如何在创建数组时调用有参构造
- 4.1.1 非堆数组
- 4.1.2 指针数组
- 4.1.3 placement new
C++ | 【01 基础提议】More Effective C++🧡💛💚💙
C++ | 【02 运算符】More Effective C++🧡💛💚💙
C++ | 【03 异常】More Effective C++🧡💛💚💙
C++ | 【04 效率】More Effective C++🧡💛💚💙
C++ | 【05 技巧】More Effective C++🧡💛💚💙
C++ | 【06 杂项】More Effective C++🧡💛💚💙
C++ |【01】面向对象基础内容、引用、函数重载等…
- 引用必须指向某些对象,不能使用空值,应被初始化;
- 由于不能使用空值,则在使用时,不需要测试其合法性;
- 引用初始化后,不能改变;
- 重载 *** 作符时一般使用引用;
- 当你指向一个对象不改变其指向时,或重载 *** 作符时,使用引用;
2、尽量使用C++风格的类型转换
C++ | 一文整理Effective C++ 55条款内容(全) 第27条
3、不要对数组使用多态- 由于数组中是按照元素的大小为偏移量,当多态应用于数组时,会导致对象的大小不一致;
由于派生类的长度一般比基类要大;
- 通过一个基类指针来删除一个含有派生类对象的数组,结果是不确定的;
4、避免无用的缺省构造函数
- 缺省构造函数不利用任何外部数据就可以初始化对象;
- 建立对象数组需要用到缺省构造
4.1 如何在创建数组时调用有参构造
4.1.1 非堆数组
Class arr[] = {class(num), class(num), .....};
4.1.2 指针数组
该方法有缺点必须
删除
数组中每一个指针的对象
,同时增加的内存使用量
;
typedef class* c;
//1、c arr[10];
c* arr = new c[10]; // 2、
for(int i=0; i<10; ++i) {
arr[i] = new class(num);
}
4.1.3 placement new
C++ |【总结归纳三本书籍系列】一文透彻资源管理,动态内存分配【上】…
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)