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;
}

浙公网安备 33010602011771号