如果在某种情况下,想实现像宏那样代码展开的话,不妨试试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;
}
/******************************************************* *友元类friend *******************************************************/ #include <iostream>
using namespace std;
//类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{
public:
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 return 0;
}
本文转自 xcf007 51CTO博客,原文链接:http://blog.51cto.com/xcf007/108612,如需转载请自行联系原作者