6 3隨筆(類中的友元以及靜態)

2021-10-06 19:24:02 字數 1732 閱讀 3650

今天摸魚時間不算長,期末了,作業什麼的比較多

友元函式

先直接給出性質:

下面是乙個簡單的例子:

#include

using

namespace std;

class

person

;void person::

print()

//成員函式

void

print2

(person temp)

//友元函式

intmain()

友元類

乙個類 a 可以將另乙個類 b 宣告為自己的友元,類 b 的所有成員函式就都可以訪問類 a 物件的私有成員。在類定義中宣告友元類的寫法如下:

friend  class  類名;
例子:

#include

using

namespace std;

class

person

;void person::

print()

//成員函式

void

print2

(person temp)

//友元函式

class

dog//友元類

private

: string name;};

intmain()

先來簡單說一下static修飾的靜態變數

static修飾的變數,僅在第一次執行該語句時初始化,之後不再初始化。他的記憶體被分配在全域性資料區中,但是作用域在區域性作用域。

靜態資料成員

類的靜態資料成員比較複雜,總結幾點比較重要的性質吧

1.靜態資料成員在類中只能宣告不能定義,要對其進行定義只能在全域性作用域中定義

2.靜態資料成員不屬於任何物件,它被類的所有物件共享,包括派生類

示例1

class

person

;int person::score =1;

//定義

/*int class::a=10;

資料型別+類名+作用域符號+變數名=10;

*/

示例2

#include

using

namespace std;

class

person

;int person::score =1;

//定義

class

teacher

:public person

;int

main()

靜態成員函式

與靜態資料成員相類似地有:

1.定義方式相似

2.屬於類而不屬於物件

3.靜態成員函式不屬於某個物件,自然也就不存在this指標

示例:

#include

using

namespace std;

class

person

;void person::

print()

//定義

intmain()

今天個人覺得還算充實,不過還是有任務拖欠到了明天,而且沒早睡… …

C 類的this指標,靜態成員,友元函式友元類

在上篇講c 中類,物件,封裝,繼承 派生 多型的時候,this指標出現在成員函式中,並使用 成員提取符操作成員變數。在 c 中,每乙個物件都能通過 this 指標來訪問自己的位址,this 指標是所有成員函式的隱含引數,實際上成員函式預設第乙個引數為t const register this,thi...

友元(友元函式 友元類 類成員函式的友元)

friend 友元機制 允許乙個類將對其非公有成員的訪問許可權授予指定的函式或者類。我們可以將友元大致分為3類 友元函式 是指某些雖然不是類的成員函式,但是能夠訪問這個類的所有成員的函式。比如我們下列的 include class test friend void show test rhs 宣告 ...

C 中的 友元函式 友元類

1.友元函式的簡單介紹 1.1為什麼要使用友元函式 在實現類之間資料共享時,減少系統開銷,提高效率。如果類a中的函式要訪問類b中的成員 例如 智慧型指標類的實現 那麼類a中該函式要是類b的友元函式。具體來說 為了 使其他類的成員函式直接訪問該類的私有變數。即 允許外面的類或函式去訪問類的私有變數和保...