2
如果我有像我是否必須在析構函數中做任何事情來釋放非指針成員變量?
class Foo { ... }
class UsesFoo {
private:
Foo foo;
public:
UsesFoo() : foo(1, 2, 3) { }
}
然後按我的理解,當你建造一個UsesFoo
(無論是UsesFoo *myMan = new UsesFoo();
或UsesFoo myMan;
),它通過調用Foo(1, 2, 3)
創建Foo
對象彷彿。當UsesFoo
遭到破壞(通過delete myMan;
或超出範圍),Foo
裏面也將被銷燬。
如果我提供了下面的析構函數,Foo
還會被破壞嗎?
~UsesFoo() { }
如果不是,那我該怎麼做才能銷燬Foo
?換句話說,作爲類實例的非指針成員變量是如何被破壞的語義是什麼?
尼斯,從標準報價=)。這在C++ 11之前有多遠? – Claudiu
@Claudiu時間本身的開始。 – David
@Claudiu,它在C++ 03中是§12.4/ 6。但我傾向於同意戴夫的評論。 – Brian