gpt4 book ai didi

c++ - public static const 变量是否破坏了封装意识形态?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:08:47 25 4
gpt4 key购买 nike

我似乎总是在决定类中的值应该是 staticconst 应该是公共(public)的还是私有(private)的,并使用静态公共(public)方法进行访问.

class DeepThought
{
public:
static const int TheAnswer = 42;
};

对比:

class DeepThought
{
public:
static int GetTheAnswer() { return TheAnswer; }
private:
static const int TheAnswer = 42;
};

以第一种方式去做,但我内心深处的某个地方感觉它打破了封装,即使它是一个常数值。第二种方法似乎并没有真正向表中添加任何内容,而且不必要地使代码困惑。

所以我想问,这两种选择是否存在根本性错误?如果有,是什么?

最佳答案

从纯理论意义上来说,第二种选择更为正确。在实际意义上,我同意你的看法 - 用 getter 函数包装常量值是没有用的,无论如何都会被编译器删除。

根据我的经验,有时越简单的方法越好,即使它在某种程度上违反了 OOP。

最后一点——我们过去常常为此使用枚举:

enum CONSTS
{
TheAnswer = 42,
};

关于c++ - public static const 变量是否破坏了封装意识形态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5922455/

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