在學習c++這一塊,關於友元函式和友元類,感覺還是不好理解,但是井下心來,理解,需要把我一下幾點。
首先講友元函式。
(1)友元函式:
1)c++中引入友元函式,是為在該類中提供乙個對外(除了他自己意外)訪問的視窗;
2)這個友元函式他不屬於該類的成員函式,他是定義在類外的普通函式,只是在類中宣告該函式可以直接訪問類中的private或者protected成員。
使用友元函式宣告的一般形式:
friend 《返回型別》
《函式名》 (《引數列表》);
使用友元函式注意的要點:
類中通過使用關鍵字friend 來修飾友元函式,但該函式並不是類的成員函式,其宣告可以放在類的私有部分,也可放在共有部分。友元函式的定義在類體外實現,不需要加類限定。
乙個類中的成員函式可以是另外乙個類的友元函式,而且乙個函式可以是多個類友元函式。
友元函式可以訪問類中的私有成員和其他資料,但是訪問不可直接使用資料成員,需要通過對物件進行引用。
友元函式在呼叫上同一般函式一樣,不必通過對物件進行引用。
例如如下形式:這裡解釋上面的1,3,4要點的使用,加以理解。
#include
#include
using
namespace
std;
class persion;
persion::persion(char *pn) //建構函式
void persion::disp()
void main()
關於要點2的使用,我給出一段**案例:
#include
#include
using
namespace
std;
class wheel;
class car;
car::car(char *pn)
class wheel;
wheel::wheel(int s)
int main(int argc, char
const *argv)
void car::run(wheel &w) //car類成員函式的實現
c 中友元函式理解與使用
1 友元函式 1 c 中引入友元函式,是為在該類中提供乙個對外 除了他自己意外 訪問的視窗 2 這個友元函式他不屬於該類的成員函式,他是定義在類外的普通函式,只是在類中宣告該函式可以直接訪問類中的private或者protected成員。使用友元函式宣告的一般形式 friend 返回型別 函式名 引...
C 中友元函式和成員函式的區別
什麼是友元函式 指某些雖然不是類的成員卻能夠訪問類的所有成員的函式 為什麼要使用 為了使其他類的成員函式來訪問該類的私有變數 什麼時候使用 可以用於運算子過載 兩個類共享資料 呼叫方式 不是類的成員函式,呼叫時不通過物件 存在位置 可以在類內宣告,類外定義,可放在類的私有段或公有段,放在私有段和公有...
C 建構函式理解
正確理解qt中建構函式 widget widget qwidget parent qwidget parent ui new ui widget include using namespace std class base base int val m num val 1 private int m...