的事情是,的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