Возможный дубликат:
Переслать декларацию вложенных типов/классов в С++
У меня такой класс...
class Container {
public:
class Iterator {
...
};
...
};
В другом месте я хочу передать Container:: Iterator по ссылке, но я не хочу включать заголовочный файл. Если я попытаюсь отправить объявление объявить класс, я получаю ошибки компиляции.
class Container::Iterator;
class Foo {
void Read(Container::Iterator& it);
};
Компиляция приведенного выше кода дает...
test.h:3: error: ‘Iterator’ in class ‘Container’ does not name a type
test.h:5: error: variable or field ‘Foo’ declared void
test.h:5: error: incomplete type ‘Container’ used in nested name specifier
test.h:5: error: ‘it’ was not declared in this scope
Как я могу перенаправить объявление этого класса, поэтому мне не нужно включать заголовочный файл, объявляющий класс Iterator?