「刪除」命令,我是一個新的C++的學習者。我有一個簡單的問題。這是一本書的代碼。是否有必要創建一個新的指針「pCat」?我可以只使用「rCat」並刪除它嗎?如果不是,爲什麼?關於C++
class SimpleCat
{
public:
SimpleCat (int age, int weight);
~SimpleCat() {}
int GetAge() { return itsAge; }
int GetWeight() { return itsWeight; }
private:
int itsAge;
int itsWeight;
};
SimpleCat::SimpleCat(int age, int weight):
itsAge(age), itsWeight(weight) {}
SimpleCat* TheFunction();
int main()
{
SimpleCat* rCat = TheFunction();
int age = rCat->GetAge();
std::cout << "rCat is " << age << " years old!\n";
std::cout << "rCat: " << rCat << "\n";
// How do you get rid of that memory?
SimpleCat* pCat = rCat;
delete pCat;
return 0;
}
SimpleCat* TheFunction()
{
SimpleCat *pFrisky = new SimpleCat(5,9);``
std::cout << "pFrisky: " << pFrisky << "\n";
return pFrisky;
}
是你可以做'刪除rCat'。你爲什麼認爲你無法做到這一點? –
如果這是來自書籍的代碼,建議將其扔掉。 –
@ manni66:的確,書和代碼都是。 – Bathsheba