详细介绍内联函数的使用

发表于:2011-7-01 09:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

#
DotNet

  类的成员函数可以分为内联函数和外联函数。内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内。而说明在类体内,定义在类体外的成员函数叫外联函数。外联函数的函数体在类的实现部分。

  内联函数在调用时不是像一般的函数那样要转去执行被调用函数的函数体,执行完成后再转回调用函数中,执行其后语句,而是在调用函数处用内联函数体的代码来替换,这样将会节省调用开销,提高运行速度。

  内联函数与前面讲过的带参数的宏定义进行一下比较,它们的代码效率是一样的,但是内联函数要优于宏定义,因为内联函数遵循函数的类型和作用域规则,它与一般函数更相近,在一些编译器中,一旦关上内联扩展,将与一般函数一样进行调用,调试比较方便。

  外联函数变成内联函数的方法很简单,只要在函数头前面加上关键字inline就可以了。

  1. #include <iostream>   
  2. using namespace std;   
  3. class A   
  4. {   
  5. public:   
  6. A(int x, int y) //内联函数   
  7. {   
  8. X=x;Y=y;   
  9. }   
  10. int a() //内联函数   
  11. {   
  12. return X;   
  13. }   
  14. int b() //内联函数   
  15. {   
  16. return Y;   
  17. }   
  18. int c();   
  19. int d();   
  20. private:   
  21. int X,Y;   
  22. };   
  23. //inline定义内联函数   
  24. inline int A::c()   
  25. {   
  26. return a()+b();   
  27. }   
  28. inline int A::d()   
  29. {   
  30. return c();   
  31. }   
  32. void main()   
  33. {   
  34. A m(3,5);   
  35. int I=m.d();   
  36. cout<<"d()return:"<<I<<endl;   
  37. }

  输出结果:

  d()return:8

  说明:类A中,直接定义了3个内联函数,又使用inline定义了2个内联函数。

41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号