C++编译器会自动为类创建默认构造函数、默认析构函数,如果使用到了拷贝操作,编译器也会创建默认拷贝构造函数以及默认拷贝赋值运算符。如果用户自行定义了以上内容,编译器则不会进行默认创建。
拷贝赋值运算符的行为基本上与拷贝构造函数一致,但存在以下情况,编译器会拒绝生成赋值操作符:
①对一个内含引用成员的类进行赋值操作(C++不允许引用更改指向)
②对一个内含const成员的类进行赋值操作
③在基类中将拷贝赋值运算符声明为私有,那么编译器将拒绝为其派生类生成拷贝赋值运算符
C++编译器会自动为类创建默认构造函数、默认析构函数,如果使用到了拷贝操作,编译器也会创建默认拷贝构造函数以及默认拷贝赋值运算符。如果用户自行定义了以上内容,编译器则不会进行默认创建。
拷贝赋值运算符的行为基本上与拷贝构造函数一致,但存在以下情况,编译器会拒绝生成赋值操作符:
①对一个内含引用成员的类进行赋值操作(C++不允许引用更改指向)
②对一个内含const成员的类进行赋值操作
③在基类中将拷贝赋值运算符声明为私有,那么编译器将拒绝为其派生类生成拷贝赋值运算符