Я новичок в C++, и я сделал класс заголовок (PID.h), который выглядит следующим образом:C++ - Использование перечисления объявленного внутри класса вызвать класс застройщик в
class PID
{
public:
PID(double newSetpoint,
double newOutputMax,
PID::Direction newDirection,
PID::Mode newMode,
PID::Reference newReference);
enum Direction { DIRECT = 0, REVERSE = 1 };
enum Mode { MANUAL = 0, AUTOMATIC = 1 };
enum Reference { LINEAR = 0, CIRCULAR = 1 };
// class continues...
};
Visual Studio 2010 показывает направление, Mode и Reference в конструкторе класса, отмеченном ошибкой: «PID класса не имеет направления memeber» (то же самое для двух других).
В PID.cpp помечает имя конструктора в красном говоря
ошибка C2511: «PID :: PID (двойной, неподписанных Int, двойной, двойной, двойной, двойной, двойной, PID :: Направление , PID :: Mode, PID :: Reference) ': перегруженная функция-член не найдена в' PID '
Кто-нибудь знает, что происходит? Почему я не могу вызвать конструктор класса с объявлением enum внутри класса?
'Вы должны объявлять перечисления, прежде чем использовать them' _when, используемые за пределами члена function body_ –
Хорошая точка, отредактирует –
Это сработало! благодаря! Не могли бы вы просто уточнить, «когда используется вне тела функции-члена»? – mFeinstein