首页 >后端开发 >C++ >如何在 C 中定义私有静态常量字符串数据成员?

如何在 C 中定义私有静态常量字符串数据成员?

DDD
DDD原创
2024-12-25 04:20:14316浏览

How Can I Define Private Static Constant String Data Members in C  ?

实现静态常量字符串数据成员:综合指南

在为类(例如形状工厂)定义私有静态常量字符串时,您可能会遇到障碍使用 C 编译器。这是由于 C 标准施加的限制。要克服这一挑战并建立静态 const 字符串数据成员,请考虑以下解决方案:

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

利用 C 17 中引入的内联变量提供了方便的方法定义静态常量变量的有效方法:

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

外部定义和初始化

C 17 之前的版本需要在类外部定义静态成员并单独提供初始化器:

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

需要注意的是,在类内部带有初始化器的语法类定义仅保留用于整型和枚举类型。

关于#define

虽然 #define 对于定义常量来说似乎很诱人,但它引入了可能并不理想的全局可见性级别。例如,如果在头文件中定义常量,则程序的所有部分都可以全局访问该常量。这可能会导致定义相同常量的不同实现的命名冲突以及其他潜在问题。

以上是如何在 C 中定义私有静态常量字符串数据成员?的详细内容。更多信息请关注PHP中文网其他相关文章!

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