Как определить const double внутри файла заголовка класса? - PullRequest
11 голосов
/ 09 декабря 2011

В файле заголовка моего класса я пробую следующее и получаю жалобы компилятора:

private:
    static const double some_double= 1.0;

Как вы на самом деле должны это делать?

Ответы [ 3 ]

20 голосов
/ 09 декабря 2011

В C ++ 11 вы можете иметь нецелые константные выражения благодаря constexpr:

private:
    static constexpr double some_double = 1.0;
4 голосов
/ 09 декабря 2011

Объявите его в заголовке и инициализируйте в одном модуле компиляции (.cpp для класса разумно).

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

//my_class.cpp
const double my_class::some_double = 1.0;
3 голосов
/ 09 декабря 2011

Я решил эту проблему, выполнив следующее:

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

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

Я получил идею от

math::pi()
...