c 友元函式

2022-02-03 06:03:28 字數 1027 閱讀 9599

多年前就粉c++,認為這是黑客專門用的語言,到現在這種情懷仍有增無減;那時朦朦朧朧的看到友元函式這個詞頓時覺得深不可測;其實通過下面的例子我們不難發現,友元函式就是在類方法之外,通過函式訪問類的私有成員的一種方法宣告。不像人話是麼?先看這樣乙個例子

#pragma once

class

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 once

class

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開始,它只能出現在類定義的內部,友...