定义 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中文网其他相关文章!