友元全局函數
#include<iostream>
using namespace std;
class time{
int hour;
int min;
int sec;
public:
time(int h, int m, int s) :hour(h), min(m), sec(s){}//構造函數定義
friend void printtime(time &t);//聲明全局友元函數
};
void printtime(time &t);//聲明函數,形參必須是類的應用或者指針
int main(){
time t(11, 12, 45);
printtime(t);
system("pause");
return 0;
}
void printtime(time &t){
cout << t.hour << ":" << t.min << ":" << t.sec << endl;//先定義友元類才能調用對象t的私有成員
}
友元成員函數
A是B類友元,A所有成員函數都是B的友元,都可以訪問B類的私有成員
class B{
...
class A;
...
};
友元特點:不能傳遞;單向;不能繼承
內聯關鍵詞:inline,調用方式比普通函數簡單,所有函數都可以建議定義爲inline,但編譯器在執行時會自動判斷是否生成內聯,內聯不能是遞歸、複雜運算的函數