C++-STL(16)-内联函数

一般函数比表达式慢,而内联函数速度堪比表达式。
1.关键字inline 放在函数定义(注意是定义而非声明)。
2.内联函数通常就是将它在程序中的每个调用点上“内联地”展开。
上例子
1.定义:

inline int add(int a, int b)
{
 return a+b;
}

2.调用

cout<<add(a, b)<<endl;

3.编译
 

cout<<(a+b)<<endl;

正确的写法和不正确的写法
 

//1.正确的写法
void Foo(int x, int y);         //声明
inline void Foo(int x, int y)   //定义 inline 与函数定义体放在一起
{
 ...
}
//2.错误的写法
inline void Foo(int x, int y);   // inline 仅与函数声明放在一起  
void Foo(int x, int y)
{
 ...
}

实例:
 

//1.A.h文件
class A
{
public:
 A(int a, int b) : a(a),b(b){}
 int add();
private:
 int a;
 int b;
};

//2.A.cpp文件
#include "A.h"
inline int A::max()
{
 return a+b;
}

//3.main.cpp
#include <iostream>
#include "A.h"
using namespace std;
inline int A::add()
{
 return a+b;
}

int main()
{
 A a(3, 5);
 cout<<a.max()<<endl;//输出为8
 return 0;
}




 

posted @ 2020-11-19 16:57  jasmineTang  阅读(76)  评论(0)    收藏  举报