【Effective C++】<4> 了解C++默认创建并调用的函数
概述:《Efficient C++》第 4 条,了解CPP默认创建并调用的函数
编译器创建的函数
空类:
1 |
|
编译器默认添加的函数:
1 |
|
拷贝构造函数与拷贝赋值操作符函数
拷贝构造函数和拷贝赋值操作符函数,编译器创建的版本只是单纯地将来源对象的每一个非静态成员变量拷贝到目标对象。如下模板类 NamedObject
,它允许你将一个名称和类型为 T 的对象产生关联。
1 |
|
1 |
|
编译器拒绝创建拷贝赋值操作符函数的情况
编译器为 NamedObject<int>
所产生的拷贝赋值操作符函数,其行为基本上与拷贝构造函数如出一辙,但一般而言只有当生出的代码合法且有适当机会证明它有意义,其表现才会如我先前所说。万一两个条件有一个不符合,编译器会拒绝为类产生拷贝赋值操作符函数。
编译器拒绝创建拷贝赋值操作符函数情况:
- 成员函数为引用类型。
- 成员函数为常量。
【Effective C++】<4> 了解C++默认创建并调用的函数
https://hodlyounger.github.io/2024/11/08/D_立志博览群书/《Efficient C++》/【Effective CPP】4_了解CPP默认创建并调用的函数/