我想定义一个结构,其中将存储一些数学常数。
这是我现在所拥有的:

struct consts {
    //salt density kg/m3
   static const double gamma;
};

const double consts::gamma = 2350;

它可以正常工作,但是会有超过10个浮点常量,因此我不想在每个常量之前都写“static const”。并定义如下内容:
static const struct consts {
    //salt density kg/m3
   double gamma;
};

const double consts::gamma = 2350;

看起来不错,但出现以下错误:
1.不允许重新声明成员函数
2.不能在其类之外定义非静态数据成员

我想知道是否有任何C++方式可以做到这一点?

最佳答案

使用 namespace ,而不要尝试将结构构造为 namespace 。

namespace consts{
    const double gamma = 2350;
}

访问数据的方法也具有完全相同的语法。因此,例如:
double delta = 3 * consts::gamma;

关于c++ - C++中的静态结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3023643/

10-12 14:13