两个类的相互引用

来源:互联网 发布:php微信开发 编辑:程序博客网 时间:2024/04/29 07:22

在编程时,经常会遇到两个类相互使用的情况,这时候就用到两个类的相互引用,这时候该怎么处理呢?

在查阅资料和同事讨论后,知道这种交叉使用的情况是可以处理的。

在各自头文件中声明对方,而不用包含,即要用class *,而不用 #include <class.h>;在对应的实现类中引用#include

例如:有两个类 A B

class B;
class A
{
private:
        std::vector mList;
};

/////////////////////////////////////////

class A;
class B
{
private:
        A* pA;
};

这个时候再在实现的类中加入应用对象即可。如下所示:

//A的实现部分
#include
#include
{
...
}
////////////////////////////////////////////
//
B的实现部分
#include
#include
{
...
}

如果直接在类的头文件中互相引用,可能会造成编译错误。所以如果用到类的相互引用时需要注意!如果没有必要使用类的相互引用,最好还是不要使用,毕竟相互引用很容易造成错误。

0 0
原创粉丝点击