C++ | 【01 基础提议】More Effective C++

C++ | 【01 基础提议】More Effective C++,第1张

文章目录
  • 索引
    • 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++🧡💛💚💙

1、指针与引用的区别

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++ |【总结归纳三本书籍系列】一文透彻资源管理,动态内存分配【上】…

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/673414.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-19
下一篇 2022-04-19

发表评论

登录后才能评论

评论列表(0条)

保存