Я пытаюсь создать класс сложного числа и хочу создать мнимую единицу i как константу. Я хочу, чтобы иметь возможность использовать его в любом коде, когда класс включен. Например:Как создать глобальную константу класса - C++
#include "complex.h"
complex c = 2*i;
Я попытался определить его таким образом: static const complex i
в complex.h под public:
и const complex complex::i = complex(0,1)
в complex.cpp. Но когда я пишу код сверху в main.cpp, я получаю необъявленную переменную ошибку.
Как я могу это сделать?
Примечание: Я определил =
и *
операторы
Как насчет объявления 'i' как' public' static const данных? – timrau
Конечно, это не определено - вы сделали это частным. –
@CareyGregory Независимо от того, является ли он конфиденциальным или нет, это не влияет на его определение или нет. Фактически, доступ не влияет на то, что когда-либо было при поиске имени. Все это означает, что если компилятор найдет личное имя с поиском (или разрешение перегрузки разрешается для частной функции), вы получите сообщение об ошибке. –