C ++一个文件有几个类

时间:2013-07-29 09:27:24

标签: c++ class dependencies

我想在一个文件中保留两个类,我希望其中一个包含另一个文件的实例。所以在我的头文件中我有这样的东西:

class Box{
    Item a,b,c;
    /*
    ...
    */
}

class Item{
    /*
    ...
    */
}

显然编译器说它不知道什么Item。如何让它看到Item类?

3 个答案:

答案 0 :(得分:8)

只需将Item类定义移到类Box之上。现在Box可以看到完整的Item类型,它有效成为Box的成员。

class Item{
    /*
    ...
    */
}

class Box{
    Item a,b,c;
    /*
    ...
    */
}

答案 1 :(得分:3)

您可以通过在代码的开头添加来转发声明您的类:

 class Box;
 class Item;

请注意编译器应该知道类的每个数据成员的大小。您可能希望重新排序类定义以确保,或使用指针等...

你可能想要使用原始指针,引用,智能指针......

答案 2 :(得分:2)

试试这个:

class Item{
    /*
    ...
    */
}

class Box{
    Item a,b,c;
    /*
    ...
    */
}