16,466
社区成员
发帖
与我相关
我的任务
分享
// classA.h
class classB; // 前置声明
class classA
{
classB* pB;
...
}
// classA.cpp
#include "classA.h"
#inlcude "classB.h"
// classB.h
class classA; // 前置声明
class classB
{
classA* pA;
}
// classB.cpp
#inlucde "classB.h"
#inlucde "classA.h"
在calssA的头文件中这么声明
#ifndef _CLASSA_H_
#define _CLASSA_H_
#endif
在classB的头文件中这么声明
#ifndef _CLASSB_H_
#define _CLASSB_H_
#endif
-------------------------------
楼主意思是实现A中存在B对象的指针,而在B中也可以访问A的指针,其实,这个问题只要是他们同时有一个公共类就可以了。
你可以声明一个类作为公共类.
//公共类的头文件
#ifndef _CPUBSHARE_H_
#define _CPUBSHARE_H_
#include "ClassA.h"
#include "ClassB.h"
#endif
Class CPubShare
{
ClassA *m_pA;
ClassB *m_pB;
}
extern CPubShare g_PubShare;
//公共类的.cpp文件
CPubShare g_PubShare
CPubShare::CPubShare()
{
}
BOOL CPubShare::SetPtrClassA(ClassA *PtrClassA)
{
....
m_pA = PtrClassA;
}
BOOL CPubShare::SetPtrClassB(ClassB *PtrClassB)
{
...
m_pB = PtrClassB;
}
ClassA* CPubShare::SetPtrClassA()
{
...
return PtrClassA;
}
classB* CPubShare::SetPtrClassB()
{
...
return PtrClassB;
}