Использование неопределенного типа, хотя упреждающее объявление есть
Стивен Пратта язык программирования C++ страница 812, листинг 15.4 visual studio 2022 прям с книжки заполнил, но почему то когда с открытого enum использую значение, то пишет что необъявленный идентификатор. то есть TV/Tv::TV неизвестен, хотя класс объявлен за ранее, что бы был виден Remot'у. И пытался в отдельном заголовочном файле делать, но ошибка та же самая.
class Tv;
class Remote {
private:
int mode;
public:
Remote(int m = TV); //прям с книги, но IDE ругается: "идентификатор не определен"
... //заменил на Tv::TV ругается уже компилятор: "необъявленный идентификатор"
};
class Tv {
//friend class Remote;
friend void Remote::set_ch(Tv& t, int c);
public:
enum{TV, DVD};
...
};
Подскажите пожалуйста, почему такое может происходить?
Источник: Stack Overflow на русском