我有一个像常量一样使用的变量(它永远不会改变)。我不能将其声明为常量,因为在运行时会添加该值。

您是否将变量名大写以帮助您了解数据的含义?

还是您不是会因为这违背惯例并使事情变得更加困惑?

更大的问题:
您是否遵循约定,即使场景不是约定的典型情况,又足够接近以至于可以亲自帮助您理解事物?

最佳答案

封装它。

#include <iostream>

class ParamFoo
{
    public:
        static void initializeAtStartup(double x);
        static double getFoo();
    private:
        static double foo_;
};

double ParamFoo::foo_;

void ParamFoo::initializeAtStartup(double x)
{
    foo_ = x;
}

double ParamFoo::getFoo()
{
    return foo_;
}

int main(void)
{
    ParamFoo::initializeAtStartup(0.4);
    std::cout << ParamFoo::getFoo() << std::endl;
}

这应该很清楚地表明,除了在应用程序启动时,您不应该在其他任何地方设置该值。如果要增加保护,则可以添加一些私有(private)保护boolean变量,以在initializeAtStartup多次调用时引发异常。

09-13 10:51