c 建立乙個指向自己的類指標

2021-08-15 22:12:01 字數 790 閱讀 8625

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,此時,只有類的成員函...