1.友元函式
(1)友元函式是定義在乙個類外的普通函式。
友元函式和普通函式的定義一樣;在類內必須將該普通函式宣告為友元。
(2)友元函式不是成員函式。
不能通過物件來呼叫,而是直接呼叫;友元函式可以訪問類的公有、受保護以及私有成員,但是必須通過物件、物件指標或者物件引用來訪問。
2.友元函式的宣告
friend 返回值型別 函式名(參數列);
在類中只需要將這個宣告放置在公有部分即可。
class point
double x, y;
public:
point()
point(double xx, double yy)
friend double distance(point, point);//將distance函式宣告為友元函式
double distance(point my1, point my2)
return sqrt((my1.x-my2.x)*(my1.y-my2.y));
3.友元函式在定義時即普通函式的定義,前面不加friend,在類內宣告時,必須加friend.
在友元函式生效的物件的作用範圍內可以訪問私有、公有以及受保護成員。
main函式不能宣告為類的友元函式,main函式只能做主調不能做被調。
1.拷貝建構函式
(1)拷貝建構函式是乙個建構函式,它屬於類的成員函式(普遍定義為public);和類名同名但是無返回值;建立物件時,若該物件的初始化值是另乙個同類物件時(賦值不呼叫)呼叫。
(2)拷貝建構函式的宣告
類名::類名(類名 &物件引用名); 或另一種宣告方式
類名::類名(const 類名 &物件引用名)
注意:拷貝建構函式只有乙個引數,而且引數必須是乙個物件的引用;每個類其實都要有乙個拷貝建構函式,若沒有顯式的定義,那麼系統會自動定義並且設定其屬性為公有。
函式返回值是 函式名
高階函式應用2 把函式名當作引數傳給高階函式,高階函式直接返回函式名 import time def foo print from the foo def timmer func start time time.time return func stop time time.time print 函...
C 函式返回值型別
c 語言的函式返回值型別可以分為內部型別和自定義型別兩大類。在函式返回內部型別中不能返回陣列型別但可以返回指向陣列的指標,同樣也可以返回指向函式的函式指標。如果希望返回值可以作為左值 即可以放在賦值操作符左邊的 那就必須返回引用型別。而在函式返回自定義型別 即返回類型別 中根據是否可作為左值,返回值...
菜鳥學習C語言 結構體型別函式返回值問題
最近碼 時遇到乙個返回值的問題,一直報warning,後來查了下資料才知道原因,現在做下記錄。typedef struct test t test t c 3 test t fun void 一開始是這樣寫的,但是在return的地方報warning return from incompatible...