MST

星途 面试题库

面试题:C++ 头文件类声明规范之函数声明与内联

在 C++ 头文件里声明一个名为 `MathUtils` 的类,该类有一个静态公有成员函数 `add`,用于计算两个 `int` 类型参数的和并返回结果。要求将此函数声明为内联函数,同时说明在头文件中使用内联函数的优缺点以及适用场景。
45.9万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
// 在头文件中声明MathUtils类
class MathUtils {
public:
    // 内联函数add,计算两个int类型参数的和并返回结果
    static inline int add(int a, int b) {
        return a + b;
    }
};

在头文件中使用内联函数的优点:

  1. 减少函数调用开销:内联函数在编译时将函数体直接嵌入到调用处,避免了常规函数调用时的栈操作和跳转开销,提高了程序执行效率,对于短小且频繁调用的函数效果尤为显著。
  2. 代码简洁性:在头文件中声明内联函数,使得代码逻辑在调用处更加清晰,减少了函数声明和定义分离带来的查找麻烦。

在头文件中使用内联函数的缺点:

  1. 增加代码体积:由于内联函数在每个调用处都嵌入函数体,会导致可执行文件的体积增大。如果函数体较大,这种增大可能会比较明显,增加内存消耗。
  2. 编译时间增加:编译器需要对每个调用处进行内联展开,这可能会增加编译时间,特别是在项目规模较大,调用次数较多的情况下。

适用场景:

  1. 短小且频繁调用的函数:例如简单的数学运算函数、访问器函数(getter/setter)等。这些函数执行时间短,函数调用开销相对较大,使用内联函数可以有效提升性能。
  2. 模板函数:模板函数通常在头文件中定义,并且往往具有通用的逻辑,适用于多种数据类型。由于模板函数实例化的特殊性,将其定义为内联函数可以避免链接错误,同时提升效率。