C++中,引用方面的问题: (构造函数方面的)欢迎大家的光临。
下面是一个类CAT的完整定义,问题在旁边:
class CAT
{
public:
CAT();
CAT(const CAT &); //问题1 : &不懂,代表什么?
~CAT();
int GetAge() const {return * itsAge;};
int GetWeight() const {return * itsWeight;};
void SetAge(int age){* itsAge = age;};
//问题2:*是什么,返回值还是什么;是变量吗?
private:
int * itsAge; //问题3: 可以用 int * itsAge = 5替换吗?
int * itsWeight;
};
CAT::CAT()
{
itsAge = new int;
itsWeight = new int;
* itsAge = 5;
* itsWeight = 9;
}
CAT::CAT(const CAT &rhs)
{
itsAge = new int;
itsWeight = new int;
* itsAge = rhs.GetAge(); //public access
* itsWeight = *(rhs.itsWeight); //private access
//问题4: 为什么一个是public access,而另外一个是private access;
}
CAT::~CAT()
{
delete itsAge;
itsAge = 0;
delete itsWeight;
itsWeight = 0;
}