我有具有這些對象的壽命都應該由A的壽命智能指針與值作爲成員變量
我考慮被限制的類型M和N的成員變量A類
class A {
M member1;
N member2;
}
與
class A {
std::unique_ptr<M> member1;
std::unique_ptr<N> member2;
}
我不能完全肯定這是更好的,因爲他們都做到我想要的東西。成員的生命週期綁定到對象上,我不需要手動管理內存。每個設置有哪些優缺點?
如果沒有理由有指針爲什麼有指針?所有成員在析構函數中被「銷燬」。 – NathanOliver
你*想要創建'M'和'N'作爲指針的唯一時間就是它們非常大的地方,並且在堆棧上創建它們可能會導致你用盡堆棧空間 –
只有使用動態分配有一個理由,並有一個很好的理由。例如,如果你的成員對象是巨大的並且可能粉碎堆棧。否則,不要毫無意義地引入動態分配/間接的開銷。 –