在 C 中,直接在类定义中初始化 const std::string 类型的静态数据成员是不允许。相反,有两个选项可以定义此类数据成员:
使用内联变量,它定义并初始化类定义中的静态成员:
class A { private: inline static const string RECTANGLE = "rectangle"; };
在类定义之外定义静态成员,并在单独的实现文件中提供初始值设定项:
头文件
class A { private: static const string RECTANGLE; };
实现文件
const string A::RECTANGLE = "rectangle";
仅整型和枚举类型支持在类定义中初始化静态数据成员的语法。对于像 const std::string 这样的非整数类型,这种方法无效。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3