我想定义一个结构,其中存储一些数学常量 这就是我现在所拥有的:
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 ++方法可以做到这一点?
答案 0 :(得分:30)
使用命名空间而不是尝试将结构化为命名空间。
namespace consts{
const double gamma = 2350;
}
访问数据的方法也具有完全相同的synatx。例如:
double delta = 3 * consts::gamma;
答案 1 :(得分:11)
听起来你真的只想要一个命名空间:
namespace consts {
const double gamma = 2350.0;
// ...
}
除非我尝试为其提供比consts
更好的名称。