class a
這個是別人給出的答案,我再加乙個:
a &ia;
也不合法
error: constructor for 'test' must explicitly initialize the reference member
出自:高階:
昨天參加了完美世界的筆試,有乙個題是寫出c++中string類的建構函式,析構函式,拷貝建構函式和賦值函式。
題中給出了四個函式的介面,大致如下所示。
class當時一直想不明白在拷貝構造和賦值函式中,怎麼獲取引數的私有成員,導致這個題沒答出來。string
private
:
char *m_data; //
用於儲存字串
};
回來查了一下string類的實現才明白,封裝性是對類外的操作來說的,在類內操作本類的乙個物件時,可以通過該物件訪問其私有成員,這種設計也是挺合理的,因為類是自己設計的,當然自己也就知道類的內部結構,所以沒有必要對自己也進行類的「封裝」。另有一種說法是:「同種類之間是友元關係」。
所以對於拷貝建構函式和賦值函式按下面方法寫是沒問題的。
inline string::string(const string &other)} inline string& string::operator=(const string&other)
} return *this
; }
類裡面定義乙個指向自己的靜態成員指標變數
class a public static a my 解釋 在類裡面定義自己的乙個靜態變數,當這個類的所有物件都需要與某個同類的物件發生關係 不要想歪了 時,就這麼用。這個靜態成員一般是全域性存在的 廢話 而且有特殊地位的物件。有乙個很形象的例子與此類似 好比有乙個部落,對部落裡的人,可以用 cla...
c 如何在乙個類中定義指向另外乙個類的指標
一 直接定義即可。比如已有乙個類class a,再定義乙個類class b,這樣在b的定義中,就可以有乙個a 型別的成員變數。比如class b 這裡的b a就是乙個a 型別的指標。需要注意的是,要使用這種形式的定義,要麼a的定義在b的上方,要麼在b定義前加乙個a類的宣告。如class a clas...
C 建立乙個類
在c 中 定義類的關鍵字是 class 類宣告 以資料成員的方式描述資料部分 以成員函式的方式描述公共介面。類方法定義 如何描述類成員函式。類的預設訪問屬性是private,一般我們將資料部分定義為private,將成員函式定義為public 成員函式也可以定義為private,此時,只有類的成員函...