Как определить константу double внутри файла заголовка класса? Внутри заголовочного файла моего класса я пытаюсь сделать следующее и получить жалобы компилятора: private: static const double some_double= 1.0; Как вы на самом деле должны это делать? Ответ 1 В С++ 11 вы можете иметь нецелые константные выражения благодаря constexpr: private: static constexpr double some_double = 1.0; Ответ 2 Объявите его в заголовке и инициализируйте его в одном модуле компиляции (класс .cpp для класса разумный). //my_class.hpp private: static const double some_double; //my_class.cpp const double my_class::some_double = 1.0; Ответ 3 Я работал над этой проблемой, делая следующее: //my_class.hpp const double my_double() const {return 0.12345;} //in use double some_double = my_class::my_double(); Я получил идею от math::pi()
Ответ 1 В С++ 11 вы можете иметь нецелые константные выражения благодаря constexpr: private: static constexpr double some_double = 1.0;
Ответ 2 Объявите его в заголовке и инициализируйте его в одном модуле компиляции (класс .cpp для класса разумный). //my_class.hpp private: static const double some_double; //my_class.cpp const double my_class::some_double = 1.0;
Ответ 3 Я работал над этой проблемой, делая следующее: //my_class.hpp const double my_double() const {return 0.12345;} //in use double some_double = my_class::my_double(); Я получил идею от math::pi()