用于定义公共变量静态常量整数的C++标准
C++ standard for defining public variable static const integer
在c++中,在定义静态常量整数成员变量的类的头文件中,或者在cpp文件中,我应该在哪里定义它?
它符合这两种情况,如果我让定义在头文件中,如果我在cpp文件中移动定义,但哪一个是c++标准?
以下是C++标准中关于常量静态成员的完整引用:
如果非易失性常量静态数据成员是整数或枚举类型,它在类定义中的声明可以指定大括号或相等的初始值设定项,其中assignmentexpression是一个常量表达式(5.19)。静态数据文本类型的成员可以在类定义中声明为constexpr说明符;如果是,其声明应指明大括号或相等的初始值设定项,其中赋值表达式是一个常量表达式。[注:在两者中在这些情况下,成员可能出现在常量表达式中--尾注]如果成员是程序中使用的odr(3.2)和命名空间范围定义应不包含初始值设定项。
因此,如果未使用常量静态成员的ODR,则不需要在类外定义它。
注意:顺便说一下,在这种情况下,const静态成员是否为公共成员并不重要。
您必须在类定义之外定义静态成员,并在那里提供initailizer。
对于标准方法,首先做一些类似的事情
在头文件中声明静态变量
class Something
{
public:
static const int s_nValue;
};
在cpp文件的顶部,像一样初始化它
const int Something::s_nValue = 1;
相关文章:
- 如何反转整数参数包
- enum是C++中的宏变量还是整数变量
- 努力将整数转换为链表。不知道我在这里做错了什么
- 整数不会重复超过随机数
- 在C++中手动调整数组大小
- 检查输入是否不是整数或数字
- C++使用整数的压缩数组初始化对象
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 通过套接字[TCP]传输数据 如何在C / C ++中打包多个整数并使用send() recv()传输数据
- 如何只允许用户输入正整数
- 如何在c++中从文本文件中逐行读取整数
- C++:如何循环通过向量中的整数元素
- 我可以信任表示整数的浮点或双精度来保持精度吗
- 序列化,没有库的整数,得到奇怪的结果
- 在一定长度后从数组中打印时缺少整数
- std::当在256字节边界上写入整数时,流的奇怪行为
- 内联程序集printf将整数解释为地址
- 是否基于数组B整数打印数组A中的整数
- 如何在C++中将整数转换为其数字数组