动态内存和类
关于静态数据成员
- 类之作声明,不分配内存,因此静态成员变量在类中不能进行初始化,需要在类外进行。
- 特殊情况:
存在可以在类中声明静态成员并初始化的情况,成员类型为const整型或者const枚举类型。
特殊成员函数
- 默认构造函数:未提供构造函数,编译器将提供默认构造函数
- 默认析构函数
- 拷贝构造函数(赋值构造函数):用于将一个对象复制到新创建的对象中(用于初始化过程,而不是常规的赋值过程)
class_name(const class_name &);class_name::class_name(const class_name & s) { num_string ++; }
1. 按值传递和返回对象都给将调用拷贝构造函数2. 隐式的拷贝构造函数是按值赋值的,因此对于存在指针变量的,需要重新创建变量,创建信的内存空间存储指针指向的数值。
- 赋值运算符
对象之间使用赋值运算符将逐一赋值成员变量,也会存在成员中有类之间的相互赋值 - 地址运算符
- C++提供:移动构造函数
- C++提供:移动赋值运算符