//在同一头文件里声明两个类,类A用到类B,类B又用到类A,于是我
这么定义:class B;class A
{
B m_member1;
}class B
{
A m_member2;
}可编译通不过,如何是好?
error C2079: 'm_member1' uses undefined struct 'B'
这么定义:class B;class A
{
B m_member1;
}class B
{
A m_member2;
}可编译通不过,如何是好?
error C2079: 'm_member1' uses undefined struct 'B'
解决方案 »
- 【鸡毛信!急等】DLL中timer不工作
- CWinThread线程挂起后,怎样销毁线程?这时PostThreadMessage好像没反应了。
- CXTOutBarCtrl 的使用问题
- SetWinMainArgs()这个函数,怎么在MSDN上找不到啊,这个函数有什么功能,用法?
- 桌面上绘图的问题
- 如何拦截NT/2000/XP系统开机时的F8按键?
- Windows核心编程的问题
- 兄弟们,我C++学的还算好的话,我学MFC好还是学COM编程好?
- 关于IOleObject::DoVerb的问题!!急急急~
- 求教:关于vc++6.0 mfc在MDI环境下 Button3按钮双击响应函数无效
- 怎样得到共享文件夹的详细连接情况(连接数,连接用户的信息等)?
- 请教如何拦截API函数?用JMP方法(付源代码)
class B
{
void *m_lpmember2;
};*.cpp中:
#include "b.h"
#include "a.h"
使用 m_lpmember2 时强制转化为(A*)
当编译器
编译到
B m_member1;时
他需要知道 sizeof( m_member1 ) 的大小,以分配空间
可是
class B; 只是声明了,没有定义
无法知道 sizeof ( m_member1 ) 的大小
但是写成
B* m_member1;
此时可以知道 sizeof ( m_member1 ) 的大小 (=4)
解决该问题
只有期待编译器的升级
因为如果声明对象的话,是要实际分配内存的,没有定义的类对象编译器无法知道分配多少内存。