我有一个类,其声明对于单个头文件而言过于膨胀。我在其中嵌入类和结构以加强它们之间的关系,所以我想将它们保持在一起(在某种意义上我必须使用最外层的类命名空间来使用它们中的类)
有没有办法从另一个头文件声明嵌套类?或者至少在另一个头文件中声明嵌套类的方法? (每个类的许多方法都是膨胀的原因,类的数量在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代码。
答案 0 :(得分:1)
有没有办法从另一个头文件声明嵌套类?
不,嵌套类只能在其周围的类定义中声明。
或者至少在另一个头文件中声明嵌套类的方法?
是的,您可以在其类中声明嵌套类,然后在以后定义它们。
class Stage{
class Quad;
class Line;
// and a bunch of other classes
// Stage methods
void draw(Quad quad);
void draw(Line line);
// ...
};
// ... later
class Stage::Quad {
// stuff
};
// ... later still
class Stage::Line {
// whatever
};