gpt4 book ai didi

c++ - 将类常量存储在数据成员中还是方法中更好?

转载 作者:行者123 更新时间:2023-11-30 02:13:16 25 4
gpt4 key购买 nike

我最近编写了一个渲染 B 样条曲线的类。这些曲线由许多控制点定义。本来我打算用八个控制点,所以我在类里加了一个常量,像这样:

class Curve
{
public:
static const int CONTROL_POINT_COUNT = 8;
};

现在我想扩展这个类以允许任意数量的控制点。所以我想将其更改为:

class Curve
{
public:
int getControlPointCount() {return _controlPointCount;}
};

问题是一开始就在方法中存储常量是否更好,以促进适应性。换句话说,这样开始不是更好吗:

class Curve
{
public:
int getControlPointCount() {return 8;}
};

这样做的好处是,我可以只更改相关方法中的一个符号,而不用移动常量等。

这是好事还是坏事?

最佳答案

int getControlPointCount() {return _controlPointCount;}

这是一个访问器。正如 litb 指出的那样,为访问器交换 const static 并不是真正的收获。您真正需要面向 future 的可能是一对访问器和修改器。

int getControlPointCount() {return _controlPointCount;} // accessor

我还会为访问器添加一个设计常量并使其成为:

int getControlPointCount() const {return _controlPointCount;} // accessor

和相应的:

void setControlPointCount(int cpc) { _controlPointCount = cpc;} //mutator

现在,与静态对象的最大区别在于控制点计数不再是类级属性,而是实例级属性。这是一个设计更改。你想要这样吗?

Nit:您的类级别静态计数是public,因此不需要访问器。

关于c++ - 将类常量存储在数据成员中还是方法中更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/647648/

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