我只是在一條簡單的線上浪費了幾個小時而導致數據丟失。我有AnotherClass持有MyClass實例的向量。此AnotherClass實例的MyClass對象以下方式:在C++中創建對象
AnotherClass::AnotherClass(){
MyClass myObject(...);
myVector.push_back(&myObject);
}
myObject的的地址之後推入載體(與MyClass的的其他實例),如寫在代碼。當我開始使用AnotherClass的實例時,我注意到MyClass的值丟失了(完全隨機)。當我將代碼更改爲:
AnotherClass::AnotherClass(){
MyClass* myObject = new MyClass(...);
myVector.push_back(myObject);
}
我沒有數據丟失。
有人可以這麼好解釋爲什麼創建對象的第二種方式不會導致數據丟失? (沒有參考我的書1.000頁)
你有存儲指針而不是對象的特殊原因嗎?如果不是,那麼不要。 –
*「我有AnotherClass持有MyClass實例的向量。」* - 不,你不知道。或者如果你這樣做,它與這段代碼無關,所以我不知道你爲什麼提到它。 –