gpt4 book ai didi

c++ - 类声明或定义中的静态变量?

转载 作者:IT老高 更新时间:2023-10-28 23:16:41 27 4
gpt4 key购买 nike

我是 C++ 新手。
我有这样的课:

class CodeTest
{
private:
static const int TOTAL=100;
};

TOTAL声明还是定义

在阅读 Scott Meyer 的书时,有人提到在实现文件中我们需要定义如下内容:

const int CodeTest::TOTAL;

为什么需要这个?

最佳答案

实现文件中的声明在头文件之外是必需的,因为否则每个包含该头文件的翻译单元都会定义自己的对象(即,它自己的变量存储)。

这将违反 One Definition Rule .结果将是例如如果变量在一个翻译单元中发生更改,则此更改对其他翻译单元是不可见的。现在,这并不重要,因为变量是恒定的。但是,获取它的地址也会在不同的翻译单元中产生不同的指针。

关于c++ - 类声明或定义中的静态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11178434/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com