У меня есть класс, чья декларация слишком раздута для одного файла заголовка. Я вставляю в него классы и структуры, чтобы укрепить их отношения, поэтому я хотел бы сохранить их вместе (в том смысле, что я должен использовать пространство имен самого внешнего класса для использования классов внутри)Объявление вложенного класса за пределами класса, в котором он находится?
Есть ли способ объявить вложенные классы из другого файла заголовка? Или, возможно, хотя бы объявить методы вложенного класса в другом заголовочном файле? (Много методов в классе является причиной заворота, число классов относительно разумной в 10)
Структура выглядит как это:
class Stage{
class Quad{
Quad();
Quad(int width, int height);
// like 20 different constructors, plus methods
private:
glm::vec3 p[4];
};
class Line{
// ...
};
// and a bunch of other classes
// Stage methods
void draw(Quad quad);
void draw(Line line);
// ...
};
Я, вероятно, следует добавить, что я не могу разверните их встроенным препроцессором, так как это испортит мой код завершения IDE, если я буду с ним креативным.