Posted on 2007-08-03 12:55
寶杉 閱讀(1012)
評論(0) 編輯 收藏 引用 所屬分類:
C++
友元函數(shù)一般在類中聲明,如果一個友元需要訪問多個類的對象,那么每個類都要聲明一次友元函數(shù)。
還要注意:友元函數(shù)的入口包括多個類,那這些類都要在友元函數(shù)之前聲明。
如例子:Diary files\C++exams\frnd_vst2_func
如果是類person的兩個繼承他的子類boy和girl,那么友元函數(shù)如何聲明和定義。
Diary files\C++exams\frnd_member
這需要注意的地方有:
基類的數(shù)據(jù)成員共有;構造函數(shù);構造函數(shù)初始化表;類的聲明先于友元函數(shù),提高了重用性;
基類的數(shù)據(jù)成員必須共有,因為構造函數(shù)會訪問到它們,子類的構造函數(shù)也會引用基類的構造函數(shù),如果是私有的會是的子類構造函數(shù)不能直接訪問基類的私有成員,要通過基類的成員函數(shù)來訪問。
子類:public基類
還有寫細節(jié)問題:
頭文件;char *a的聲明和使用;分配char*數(shù)據(jù);
例如:
char *name;
name = new char[ strlen( s ) + 1 ];
友元函數(shù)的聲明時的入口參數(shù)可以只寫類型,不寫參數(shù)名。
例如:
class boy
{
……
void disp( gril & );
}
注意聲明時的入口參數(shù)可省略,但要寫&。
定義時,寫成
void disp( gril &x ){ …… }