11

私のクラスのヘッダーファイル内で、私は次のことを試みて、コンパイラの苦情を受けています:

private:
    static const double some_double= 1.0;

実際にこれをどのように行うことになっていますか?

4

3 に答える 3

21

C ++ 11では、次のおかげで非整数定数式を使用できますconstexpr

private:
    static constexpr double some_double = 1.0;
于 2011-12-09T02:17:18.577 に答える
4

ヘッダーで宣言し、1つのコンパイル単位で初期化します(クラスの.cppが適切です)。

//my_class.hpp
private:
static const double some_double;

//my_class.cpp
const double my_class::some_double = 1.0;
于 2011-12-09T02:12:04.253 に答える
3

私はこれを行うことでこの問題を回避しました:

//my_class.hpp
const double my_double() const {return 0.12345;}

//in use
double some_double = my_class::my_double();

私はからアイデアを得ました

math::pi()
于 2011-12-09T03:17:45.803 に答える