C++中的静态结构

And*_*rew 10 c++ static struct const

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

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

const double consts::gamma = 2350;
Run Code Online (Sandbox Code Playgroud)

它工作正常,但会有超过10个浮点常量,所以我不想在它们之前写'static const'.并定义类似的东西:

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

const double consts::gamma = 2350;
Run Code Online (Sandbox Code Playgroud)

它看起来很好,但我得到了这些错误:
1.不允许成员函数重新声明
2.非静态数据成员可能不在其类外定义

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

Yac*_*oby 30

使用命名空间而不是尝试将结构化为命名空间.

namespace consts{
    const double gamma = 2350;
}
Run Code Online (Sandbox Code Playgroud)

访问数据的方法也具有完全相同的synatx.例如:

double delta = 3 * consts::gamma;
Run Code Online (Sandbox Code Playgroud)


Jer*_*fin 11

听起来你真的只想要一个命名空间:

namespace consts { 
    const double gamma = 2350.0;
    // ...
}
Run Code Online (Sandbox Code Playgroud)

除了我试图想出一个比consts它更好的名字.