友元函式和友元類

2022-10-10 22:00:16 字數 2168 閱讀 9982

目錄二 友元類

在定義乙個類的時候,可以把一些函式(包括全域性函式和其他類的成員函式)宣告為「友元」,這樣那些函式就成為該類的友元函式,在友元函式內部就可以訪問該類物件的私有成員了。

1.1 使用全域性函式作為友元函式

將全域性函式宣告為友元的寫法:friend 返回值型別 函式名(參數列);

//------------ computer類  -------------------

/* computer.h */

#pragma once

#include using namespace std;

class computer

;/* computer.cpp */

#include "computer.h"

#include computer::computer()

computer::~computer()

string computer::description()

//------------- main.cpp -------------------

#include #include "computer.h"

using namespace std;

// 使用全域性函式作為computer類的友元函式

1.2 使用類的成員函式作為友元函式

將其他類的成員函式宣告為友元的寫法:friend 返回值型別 其他類的類名::成員函式名(參數列);

注意:不能把其他類的私有成員函式宣告為友元。

#include #include #include using namespace std;

class computer;

class computerservice

};class computer

~computer() {}

string description()

// 使用類的成員函式作為友元函式

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

#include #include #include using namespace std;

class computer;

class computerservice

void clear(computer* computer);

void kill(computer* computer);

};class computer

~computer() {}

string description()

// 友元類

友元 友元函式 友元類和友元成員函式 C

有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...

友元 友元函式 友元類和友元成員函式 C

有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...

C 友元 友元函式 友元類和友元成員函式

有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...