class CAT{public:CAT();CAT(const& CAT&);~CAT();int GetAge() const { return *itsAge; }void SetAge(int age){ *itsAge=age; }protected:int* itsAge;};課本上課后題中定義的一個類其中CAT(const& CAT&);對嗎? 能這么用嗎?如果可以的話const& CAT&又是什么意思?
2 回答

慕絲7291255
TA貢獻1859條經驗 獲得超6個贊
這個類有問題。沒有為itsAge分配空間,就直接使用,是錯誤的。
class CAT{
public:
CAT(){ itsAge = new int(0); } //分配空間,初值為0
CAT(const CAT &other){ itsAge = new int( *(other.itsAge) ); }
};
CAT(const& CAT&);前面的&多余。
&引用,const保護,不允許在函數內修改參數的成員變量。

慕的地10843
TA貢獻1785條經驗 獲得超8個贊
const &CAT&是錯誤的引用,正確的是const &CAT;const為常量標識符 &CAT 是CAT變量的地址,CAT( const &CAT)是傳址的一種形式
添加回答
舉報
0/150
提交
取消