多年前就粉c++,認為這是黑客專門用的語言,到現在這種情懷仍有增無減;那時朦朦朧朧的看到友元函式這個詞頓時覺得深不可測;其實通過下面的例子我們不難發現,友元函式就是在類方法之外,通過函式訪問類的私有成員的一種方法宣告。不像人話是麼?先看這樣乙個例子
#pragma onceclass
mypoint
intgety()
~mypoint();
};
#include "mypoint.h
"mypoint::mypoint()
mypoint::mypoint(
int x, int
y)mypoint::~mypoint()
#include#include"mypoint.h
"#include
"math.h
"using
namespace
std;
double getdistance(mypoint &p1, mypoint &p2)
void
main()
很明顯,想獲得x,y的座標就得通過類的公共方法getx(),gety()-----這就頻繁的使用壓棧和出棧操作結果帶來效能的開銷,為了能在外部定義的函式直接訪問私有屬性,友元函式應孕而生
#pragma onceclass
mypoint
intgety()
~mypoint();
};
#include#include"mypoint.h
"#include
"math.h
"using
namespace
std;
double getdistance(mypoint &p1, mypoint &p2)
void
main()
C 友元函式 友元類 友元成員函式
眾所周知,c 控制對類物件私有部分的訪問。通常,公有類方法提供唯一的訪問途徑,但是有時候這種限制太嚴格,以至於不適合特定的程式設計問題。在這種情況下,c 提供了另外一種形式的訪問許可權 友元,友元有3種 友元函式 友元類 友元成員函式。通過讓函式成為類的友元 即 友元函式 可以賦予該函式與類的成員函...
友元 友元函式 友元類和友元成員函式 C
有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...
友元 友元函式 友元類和友元成員函式 C
有些情況下,允許特定的非成員函式訪問乙個類的私有成員,同時仍阻止一般的訪問,這是很方便做到的。例如被過載的操作符,如輸入或輸出操作符,經常需要訪問類的私有資料成員。友元 frend 機制允許乙個類將對其非公有成員的訪問權授予指定的函式或者類,友元的宣告以friend開始,它只能出現在類定義的內部,友...