使用動態分配的指標初始化成員指標是否可行和良好的做法?我應該洗掉解構式中的指標嗎?
class Apple
{
public:
Apple(int* counter) : counter_(counter);
~Apple(); // should I delete counter_ here?
private:
int* counter_;
}
int main()
{
someptr = new int;
apple_fruit = Apple(someptr);
delete someptr;
return 0;
}
我對 C 還很陌生,但對于如何最好地處理動態分配的記憶體仍然有些困惑,尤其是當它用于初始化時。
uj5u.com熱心網友回復:
是的,可以使用指向動態分配資料的指標來初始化成員指標。我已經在類需要訪問另一個(動態分配的)類的實體的情況下看到了這一點。
僅當您絕對需要這樣做時,這才是一個好習慣。如果它只是我們正在處理的整數(如您的示例中所示),則不要使用指標并存盤實際整數。
對于洗掉,不要洗掉類解構式中的指標,除非最初分配資料的是您的類。你的直覺是在 main() 中洗掉它是正確的,因為它是在 main() 中創建的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/415841.html
標籤:
