如何在类的头文件中定义const double?

时间:2011-12-09 02:08:12

标签: c++ const static-members compile-time-constant

在我的类的头文件中,我正在尝试以下内容并收到编译器投诉:

private:
    static const double some_double= 1.0;

你应该怎么做到这一点?

3 个答案:

答案 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()