c 友元函式宣告及其呼叫

2021-08-08 18:13:01 字數 1631 閱讀 4342

1.友元函式的簡單介紹

1.1為什麼要使用友元函式

在實現類之間資料共享時,減少系統開銷,提高效率。如果類a中的函式要訪問類b中的成員(例如:智慧型指標類的實現),那麼類a中該函式要是類b的友元函式。具體來說:為了

使其他類的成員函式直接訪問該類的私有變數。即:允許外面的類或函式去訪問類的私有變數和保護變數,從而使兩個類共享同一函式。

實際上具體大概有下面兩種情況需要使用友元函式:(1)運算子過載的某些場合需要使用友元。(2)兩個類要共享資料的時候。

1.2使用友元函式的優缺點

1.2.1優點:能夠提高效率,表達簡單、清晰。

1.2.2缺點:友元函式破環了封裝機制,盡量不使用成員函式,除非不得已的情況下才使用友元函式。

2.友元函式的使用

2.1友元函式的引數:

因為友元函式沒有this指標,則引數要有三種情況:

2.1.1要訪問非static成員時,需要物件做引數;

2.1.2要訪問static成員或全域性變數時,則不需要物件做引數;

2.1.3如果做引數的物件是全域性物件,則不需要物件做引數;

2.2友元函式的位置

因為友元函式是類外的函式,所以它的宣告可以放在類的私有段或公有段且沒有區別。

2.3友元函式的呼叫

可以直接調用友元函式,不需要通過物件或指標

2.4友元函式的分類:

根據這個函式的**不同,可以分為三種方法:

2.4.1普通函式友元函式

2.4.1.1 目的:使普通函式能夠訪問類的友元

2.4.1.2 語法:

宣告: friend + 普通函式宣告

實現位置:可以在類外或類中

實現**:與普通函式相同

呼叫:類似普通函式,直接呼叫

#include #include using namespace std;

//友元函式

說明:友元函式沒有this指標!

友元函式不能被繼承!

C 友元函式基本用法(宣告 定義 呼叫)

本文主要總結乙個c 中基本的友元函式用法,包括友元函式宣告和定義 乙個應用簡單例子和編譯結果,友元函式特性總結,下面是具體講述。首先友元函式是宣告在類中的,作用是可以反問該類的私有成員 成員函式和成員引數 其中,友元函式的宣告跟平常函式宣告基本一樣,只需要在函式宣告前加乙個friend就行,友元函式...

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

眾所周知,c 控制對類物件私有部分的訪問。通常,公有類方法提供唯一的訪問途徑,但是有時候這種限制太嚴格,以至於不適合特定的程式設計問題。在這種情況下,c 提供了另外一種形式的訪問許可權 友元,友元有3種 友元函式 友元類 友元成員函式。通過讓函式成為類的友元 即 友元函式 可以賦予該函式與類的成員函...

模板類宣告友元函式

問題描述 如題,先看不報錯的 如 templateclass test template 2 void fun test data 因為需求傳遞需要函式指標,通過fun函式對類內私有成員進行操作。如果定義類內成員fun,則需要修改傳參。但是非要用友元函式怎麼辦呢。如果有1沒有2,則報錯 成員無法訪問...