首页 >后端开发 >C++ >如何在 C 中定义私有静态常量 `std::string` ?

如何在 C 中定义私有静态常量 `std::string` ?

Linda Hamilton
Linda Hamilton原创
2024-12-27 09:36:13257浏览

How to Define a Private Static Constant `std::string` in C  ?

定义 const std::string 类型的静态数据成员

在 C 中,为类定义私有静态常量可能具有挑战性当使用标准 const std::string 类型时。遇到的错误消息表明所使用的方法不符合 ISO C 标准。

要在不使用 #define 指令的情况下定义私有文字常量,请考虑以下两种方法:

内联变量(C 17 及更高版本)

自 C 17 起,内联变量可用于声明静态数据具有常量初始值设定项的成员。这是通过在类定义中的静态声明之前添加内联关键字来完成的:

class A {
private:
  inline static const std::string RECTANGLE = "rectangle";
};

类定义之外的定义(C 17 之前)

之前C 17、静态成员必须在类定义之外定义并单独初始化。类定义中的静态声明是在没有初始化器的情况下进行的:

class A {
private:
  static const std::string RECTANGLE;
};

// In an implementation file
const std::string A::RECTANGLE = "rectangle";

请注意,在类定义中使用非整数类型直接初始化静态成员的语法仅允许用于整数和枚举类型。

以上是如何在 C 中定义私有静态常量 `std::string` ?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn