如果需要,编译器可以为我们隐式定义一些函数,并且是否可以为该类正确定义它们。喜欢
- 默认构造函数
- 复制构造函数
- 赋值运算符
- 析构函数。
因此,编译器生成的复制构造函数/赋值是否将其参数作为const-reference
OR non-const-reference
。
class Test
{
public:
Test(const Test&); << _1
Test(Test&); << _2
};
如果确实如此,那么该决定的指导因素是什么。