C++面向对象进阶知识点总结
1.不包含pointer类的设计原则
- 数据放在private;
- 函数参数尽量传reference;
- 函数返回值尽量传reference(local obj 不能返回引用);
- 函数如果需要加const就要加;
- 构造函数尽量使用initial list;
2.包含pointer类的设计原则
- 必须写析构函数
- 必须重写拷贝构造函数和拷贝赋值函数
3.栈、堆与内存管理
- new关键字先分配内存再调用构造函数,delete关键字先调用析构函数再释放内存。
- 动态分配的数组必须使用delete[] 来释放内存,防止内存泄露。
4.转换函数
转换方式1:
转换方式2:
不确定的转换方式,编译器将会报错
明确编译器不能使用构造函数进行转换,所以编译器报错。
5.Pointer-like classes
5.1 智能指针
智能指针内部重载了*和->符号