⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 6.07-复制构造函数.cpp

📁 Visual C++的课件
💻 CPP
字号:
// Listing 10.5
// Copy constructors

#include <iostream.h>

class CAT
{
public:
	CAT();				// default constructor
	CAT (const CAT &);	// copy constructor
	~CAT();				// destructor
	int GetAge()	const	{ return *itsAge; }
	int GetWeight()	const	{ return *itsWeight; }
	void SetAge(int age)	{ *itsAge = age; }

private:
	int *itsAge;
	int *itsWeight;
};

CAT::CAT()
{
	itsAge = new int;
	itsWeight = new int;
	*itsAge = 5;
	*itsWeight = 9;
	cout<< "no para con" <<endl;
}

CAT::CAT(const CAT & rhs)
{
	itsAge = new int;
	itsWeight = new int;
	*itsAge = rhs.GetAge();  // public access
	*itsWeight = *(rhs.itsWeight); // private access
	cout<< "copy con" <<endl;
}

CAT::~CAT()
{
	delete itsAge;
	itsAge = 0;
	delete itsWeight;
	itsWeight = 0;
}

int main()
{
	CAT f;
	f.SetAge(3);
	CAT f1 = f;
	CAT frisky;
	cout << "frisky's age: " << frisky.GetAge() << endl;
	cout << "Setting frisky to 6...\n";
	frisky.SetAge(6);
	cout << "Creating boots from frisky\n";
	CAT boots(frisky);
	cout << "frisky's age: " <<     frisky.GetAge() << endl;
	cout << "boots' age: " << boots.GetAge() << endl;
	cout << "setting frisky to 7...\n";
	frisky.SetAge(7);
	cout << "frisky's age: " <<     frisky.GetAge() << endl;
	cout << "boot's age: " << boots.GetAge() << endl;
	return 0;
}

⌨️ 快捷键说明

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