Static struct in C++
I want to define an structure, where some math constants would be stored.
Here what I've got now:struct consts {
//salt density kg/m3
static const double gamma;
};
const double consts::gamma = 2350;
It works fine, but there would be more than 10 floating point constants, so I doesn't want to wrote 'static const' before each of them. And define something like that:
static const struct consts {
//salt density kg/m3
double gamma;
};
const double consts::gamma = 2350;
It look fine, but I got these errors:
1. member function redeclaration not allowed 2. a nonstatic data member ma开发者_如何学Goy not be defined outside its classI wondering if there any C++ way to do it?
Use a namespace rather than trying to make a struct into a namespace.
namespace consts{
const double gamma = 2350;
}
The method of accessing the data also has exactly the same synatx. So for example:
double delta = 3 * consts::gamma;
It sounds like you really just want a namespace:
namespace consts {
const double gamma = 2350.0;
// ...
}
Except I'd try to come up with a better name than consts
for it.
精彩评论