开发者

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 class

I 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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜