4.14-堆对象的引用(内存爆炸).cpp

来自「Visual C++的课件」· C++ 代码 · 共 45 行

CPP
45
字号
// Listing 9.14
// Resolving memory leaks
#include <iostream.h>

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();
	cout << "rCat is " << age << " years old!\n";
	cout << "&rCat: " << &rCat << endl;
	// How do you get rid of that memory?
	SimpleCat * pCat = &rCat;
	delete pCat;
	// Uh oh, rCat now refers to ??
	return 0;
}

SimpleCat &TheFunction()
{
	SimpleCat * pFrisky = new SimpleCat(5,9);
	cout << "pFrisky: " << pFrisky << endl;
	return *pFrisky;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?