C++ 面试题 目录

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

推荐答案

在 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 提供了一种更简洁、更安全的方式来管理全局变量和静态成员变量。

纠错
反馈