私のクラスのヘッダーファイル内で、私は次のことを試みて、コンパイラの苦情を受けています:
private:
static const double some_double= 1.0;
実際にこれをどのように行うことになっていますか?
私のクラスのヘッダーファイル内で、私は次のことを試みて、コンパイラの苦情を受けています:
private:
static const double some_double= 1.0;
実際にこれをどのように行うことになっていますか?
C ++ 11では、次のおかげで非整数定数式を使用できますconstexpr
。
private:
static constexpr double some_double = 1.0;
ヘッダーで宣言し、1つのコンパイル単位で初期化します(クラスの.cppが適切です)。
//my_class.hpp
private:
static const double some_double;
//my_class.cpp
const double my_class::some_double = 1.0;
私はこれを行うことでこの問題を回避しました:
//my_class.hpp
const double my_double() const {return 0.12345;}
//in use
double some_double = my_class::my_double();
私はからアイデアを得ました
math::pi()