内联函数可以通过以下方式定义:
在函数定义前加上 `inline` 关键字
```cpp
inline int add(int a, int b) {
return a + b;
}
```
在函数声明和定义处都加上 `inline` 关键字
```cpp
inline int add(int a, int b); // 函数声明
inline int add(int a, int b) {
return a + b;
} // 函数定义
```
对于类成员函数,可以在类定义体内部定义
```cpp
class Sales_item {
public:
double avg_price() const {
if (units_sold) return revenue / units_sold;
return 0;
}
private:
int units_sold;
double revenue;
};
```
对于类成员函数,可以在类定义体内部的函数声明上用 `inline` 显式地指定
```cpp
class Sales_item {
public:
inline double avg_price() const; // 函数声明
private:
int units_sold;
double revenue;
};
inline double Sales_item::avg_price() const {
if (units_sold) return revenue / units_sold;
return 0;
} // 函数定义
```
对于类成员函数,可以在类定义体外部的函数定义上用 `inline` 显式地指定
```cpp
class Sales_item {
public:
double avg_price(); // 函数声明
private:
int units_sold;
double revenue;
};
inline double Sales_item::avg_price() const {
if (units_sold) return revenue / units_sold;
return 0;
} // 函数定义
```
建议
通常将内联函数的定义放在头文件中,以便编译器在每个调用点都能看到函数的定义,从而能够进行内联优化。
内联函数适用于执行频繁且代码量较小的函数,通过减少函数调用的开销来提高程序运行效率。
在类定义体内部定义内联函数可以保持类成员的封装性,同时使得内联函数的定义更加紧凑。