Delphi中的友元

2022-04-04 15:54:17 字數 1127 閱讀 8095

結論:delphi在同乙個單元中的類互為友元類

*************************我是分割線******************************=

說到友元,大家肯定就先想到c++,因為c++語言裡面有乙個關鍵字friend它表示友元。

而現在許多語言中我們看不到friend的身影,那是不是就沒有友元呢?當然有啦。

舉個例子先:

比如現在有這個兩個類:

///車位類

tcarport 

=class

private

procedure

park; 

///入庫停靠

procedure

unpark;

///出庫

end;

///車庫類

tgarage 

=class

public

carports: tobjectlist;

///車位集合

parkedcarports:tobjectlist;///已經有車的車位

function

park(carportno: integer): boolean;

function

unpark(carportno: integer): boolean;

end;

現在我如果把tcarport的park和unpark都設為私有的,目的是防止除了tgarage其他類訪問它們。

因為在tgarage中我在park的時候要把車位同時新增到parkedcarports中去,如果其他類可以通過tcarport的park訪問,那我統計已經有車的車位數值就會不對了。

但是,我把它們都設為私有,tgarage也訪問不了tcarport的park丫~

這時就要用友元來解決了,但是delphi中沒friend這個關鍵字~

原來,只要寫在同乙個unit裡面的類,他們就相互是友元類了,所以只要把它們寫在同乙個單元裡就ok~問題解決

當你不要友元的時候,如果是delphi 7以下的就只能另外用乙個unit放了,如果delphi 8以上就可以用strict private 和strict protected來修飾,表示真私有。這樣即使在同乙個單元的其他類也不能訪問它。

C 中的 友元函式 友元類

1.友元函式的簡單介紹 1.1為什麼要使用友元函式 在實現類之間資料共享時,減少系統開銷,提高效率。如果類a中的函式要訪問類b中的成員 例如 智慧型指標類的實現 那麼類a中該函式要是類b的友元函式。具體來說 為了 使其他類的成員函式直接訪問該類的私有變數。即 允許外面的類或函式去訪問類的私有變數和保...

C 中的友元函式和友元

在c 中類具有封裝的隱蔽性,由於語言特性,只有成員函式才能訪問私有成員,非成員函式只能訪問類中的公有成員,可是有時候我們需要非成員函式呼叫私有成員,這個時候要是將私有成員定義為公有的又會破壞c 的封裝,為了解決上述問題,我們提出了友元的概念 友元分為友元函式和友元類,友元函式就是非成員函式可是當我們...

友元(友元函式 友元類 類成員函式的友元)

friend 友元機制 允許乙個類將對其非公有成員的訪問許可權授予指定的函式或者類。我們可以將友元大致分為3類 友元函式 是指某些雖然不是類的成員函式,但是能夠訪問這個類的所有成員的函式。比如我們下列的 include class test friend void show test rhs 宣告 ...