C++ 面试题
目录

C++17 中 inline 变量的用法?

· 约 2 分钟读完 · 第 129 / 181 章

推荐答案

在 C++17 中,inline 变量允许你在头文件中定义变量,而不会导致多重定义的链接错误。通过使用 inline 关键字,编译器会确保该变量在多个翻译单元中只有一个实例。

本题详细解读

1. inline 变量的背景

在 C++17 之前,全局变量或静态变量在头文件中定义时,如果该头文件被多个源文件包含,会导致多重定义的链接错误。为了解决这个问题,通常需要在头文件中声明变量,然后在某个源文件中定义它。

2. inline 变量的作用

C++17 引入了 inline 变量,允许在头文件中定义变量,而不会导致多重定义的链接错误。inline 关键字告诉编译器,该变量在多个翻译单元中只有一个实例。

3. 使用场景

inline 变量特别适用于需要在多个源文件中共享的全局常量或配置变量。通过使用 inline 变量,可以避免在每个源文件中重复定义这些变量。

4. 示例代码

5. 注意事项

  • inline 变量必须在定义时初始化。
  • inline 变量可以用于类中的静态成员变量,从而避免在类外定义静态成员变量的需要。
  • inline 变量的定义通常放在头文件中,以便在多个源文件中共享。

通过使用 inline 变量,C++17 提供了一种更简洁、更安全的方式来管理全局变量和静态成员变量。