我對複製構造函數的用法有疑問。我知道還有很多其他回答的問題和各種各樣的教程,但我無法完全解決我的問題。使用指針複製構造函數的用法
我有一個類A
它實現了一個拷貝構造函數:
A::A(const A& a) { ....... }
現在在另一類B
,我有一個私人的屬性:
A myA;
在執行過程中的B
一個方法被調用用一個指向A
對象的指針,我們稱它爲anAPointer
。我現在想將anAPointer
指向的元素複製到B::myA
。如果指針後面的元素稍後發生更改,我不希望這些更改影響myA
屬性。
我用this->myA = A(*anAPointer);
呢。這是否有我想要的效果?
我還必須在B
的析構函中調用delete myA
嗎?
沒有必要創建一個臨時變量,只需使用:'this-> myA = * anAPointer;' – Jonas
*我必須在B的析構函數中調用delete myA嗎?* - 沒有人知道上下文是什麼你的物體如何被使用。所以除非你發佈[mcve],否則沒人能給你一個明確的答案。 – PaulMcKenzie
@PaulMcKenzie'myA'在OP中明確聲明爲非指針屬性,因此可以回答 – wasthishelpful