gpt4 book ai didi

c++ - 为什么在类而不是命名空间中定义常量?

转载 作者:太空狗 更新时间:2023-10-29 20:47:21 29 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Static members class vs. normal c-like interface

我正在查看一些人的代码,在一个类中定义了几十个常量,如下所示:

// header file

class Defines
{
public:
static const int Val1;
static const int ValN;
static const char* String1;
static const char* StringN;
...
}

// .CPP
const char* Defines::String1 = "some value"
etc.

有什么理由不使用命名空间来做这件事吗?两者之间有优缺点吗

------------编辑------------

对不起,我显然应该明确指出这一点,因为没有人从类的名称(即“Defines”)中推断出它。也就是说,这些常量不与特定类相关联,已经创建了一个专门用于保存常量的类,仅此而已,这就是 Defines 类包含的所有内容。

我的问题不是为什么要将常量放在一个特定的类中,问题是将许多常量收集在一起并将它们放在一个类中是否有任何值(value),该类的唯一目的是收集在一起常量,而不是将它们一起收集在命名空间中,或者只是将它们一起收集在专门用于该目的的头文件中等。

(项目中当前不存在命名空间,因此答案中提到的污染命名空间的潜在问题与本例无关。)

----- 第 32 次编辑 ----------

还有一个后续问题---正在放置const char* Defines::StringN = "Somevalue"

在 .h 文件中与将其放在 .cpp 文件中相比效率低下?

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