📄 6.07-复制构造函数.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 + -