在我的类的头文件中,我正在尝试以下内容并收到编译器投诉:
private:
static const double some_double= 1.0;
你应该怎么做到这一点?
答案 0 :(得分:20)
在C ++ 11中,由于constexpr
:
private:
static constexpr double some_double = 1.0;
答案 1 :(得分:4)
在标题中声明它,并在一个编译单元中初始化它(该类的.cpp是合理的)。
//my_class.hpp
private:
static const double some_double;
//my_class.cpp
const double my_class::some_double = 1.0;
答案 2 :(得分:3)
我通过这样做解决了这个问题:
//my_class.hpp
const double my_double() const {return 0.12345;}
//in use
double some_double = my_class::my_double();
我从
得到了这个想法math::pi()