我不確定這是不是很好的編碼練習,所以如果我錯了,請糾正我。我應該刪除一個取消引用的指針數組嗎?
我需要一種方法來動態創建一個Transaction類並將該對象添加到一個Transaction對象的向量中。這是我做的:
class Transaction {
int data;
Transaction(int d) : data(d) {}
};
class Container {
std::vector<Transaction> transactions;
void createTransaction();
};
void Container::createTransaction() {
int data;
std::cout << "Enter your data: ";
std::cin >> data;
Transaction t = new Transaction(data);
// In order to keep the object from destruction at end of function.
// Possibly could be done with static as well.
transactions.push_back(*t);
}
矢量是對象的矢量,而不是指針。這是否是我不需要刪除動態內存的情況,因爲它會在程序/作用域結束時自行刪除?
這是一個可怕的方式去動態創建對象和存儲它們?
這種實現的內存泄漏可能不合需要。我沒有看到't' *動態分配的理由*。在輸入之後執行'transactions.emplace_back(data);'將其餘部分扔掉。 – WhozCraig 2014-12-09 11:52:45