如果在某種情況下,想實作像宏那樣代碼展開的話,不妨試試c++為我們提供的inline,可以節省必要的由于函數調用帶來的開銷。需要注意的是,inline隻是一種暗示,和register很像。
/***************************************
*inline内聯函數
**************************************/
#include <iostream>
using namespace std;
inline int max(int a,int b)
{
return a>b?a:b;
}
int main(int argc, char **argv)
cout<<max(10,20);
cout<<" "<<max(99,88)<<endl;
return 0;
代碼2:
/*******************************************************
*友元類friend
*******************************************************/
//類A
class A{
int a,b;
public:
void init(int m,int n);
void show
};
inline void A::init(int m,int n)
a=m;
b=n;
//類B
class B{
int min(A x);
int B::min(A x)
return x.a<x.b?x.a:x.b;//通路私有成員
int main(int argc,char* argv[])
A aa(123,321);
B bb;
cout<<bb.min(aa);;//123
}