的事情是,的C++编程语言第四版说的显式声明隐式生成的构造函数:与析构函数
在这种特殊情况下,如果你忘记删除复制或移动操作,没有任何的损害。 A 对于用户已经显式声明析构函数的类,不会隐式地生成移动操作。 此外,在这种情况下(第44.2.3节),不赞成使用复制操作。这 可以是一个很好的理由,甚至明确定义析构函数,其中,编译器会隐含地 提供一个(§17.2.3)。
我试过这段代码:
#include <iostream>
class Foo {
public:
~Foo() {}
}
int main() {
Foo x;
Foo y(x);
return 0;
}
而且这里没有错误和产生的异常。我知道复制构造函数应该隐式地在C++ 98中生成,但是第四种说复制已被弃用。这是什么意思?
谢谢Nelxiost – user2923317