我用了一种嵌套的方式定义了3各类如下:
在A.H中
#include "B.H"
class A
{ public: void dealdata();
B m_b;
....}
在B.H中
#include "C.H"
class B
{
C m_c;
.....}在C.H中
class A ;
class C
{public: BOOL passdata(A* p_a1)
}
在C.cpp中
C::passdata(A* p_a1)
{
A* pa2;
pa2=p_a1;
writefile(pa2->dealdata());
}
应用时:
A objectA;
objectA.m_b.m_c.passdata(&objectA);编译出错:
use of undefined type 'A'是否在两个类中互为成员声明有错? 该如何声明??
在A.H中
#include "B.H"
class A
{ public: void dealdata();
B m_b;
....}
在B.H中
#include "C.H"
class B
{
C m_c;
.....}在C.H中
class A ;
class C
{public: BOOL passdata(A* p_a1)
}
在C.cpp中
C::passdata(A* p_a1)
{
A* pa2;
pa2=p_a1;
writefile(pa2->dealdata());
}
应用时:
A objectA;
objectA.m_b.m_c.passdata(&objectA);编译出错:
use of undefined type 'A'是否在两个类中互为成员声明有错? 该如何声明??
class C;class A
{ public: void dealdata();
B m_b;
....
};class B
{
C m_c;
.....
};class C
{public: BOOL passdata(A* p_a1)
};C::passdata(A* p_a1)
{
A* pa2;
pa2=p_a1;
writefile(pa2->dealdata());
}
#include "A.H"
#define __A_Header_Included__
...
#endif // end up this header
1。在C.h中加入:
#include "A.H"
2. 在A.H、B.H、C.H中的三个文件分别加入宏,比如
#ifndef __A_H__ //文件头
#define __A_H__
.....
#endif //文件末
3.或者在头文件中加入
#param (ONCE)
#include "A.H"
.cpp包含 b.h试试
#define __A_H__
.....
#endif //文件末
这样定义是什么意思?
我试了大家建议的方法都不行!
#define __A_Header_Included__
#include "B.H"
class A
{
public: void dealdata();
B m_b;
....
};
#endif // end up this header
C::passdata(A* p_a1)
{
A* pa2;
pa2=p_a1;
writefile(pa2->dealdata());
}...
不过cpp就可以