即使编译通过,你这样设计也有问题。
如果生成一个B对象,则死循环。
b创建a,a创建b,b创建a.....
如果生成一个B对象,则死循环。
b创建a,a创建b,b创建a.....
解决方案 »
- 桌面上“我的电脑”打不开?有人遇到这种情况吗?求解决!!!
- ado操作oracle时自么获得数字精度
- MFC单文档程序,如何去掉标题,和菜单栏
- 小弟初学,求一个Socket登陆的验证代码
- msxml中,用IServerXMLHTTPRequestPtr向一个url来post一个xml文件,header中的charset怎么设置?
- 关于CScrollView中滚动条的问题
- 大家好,问几个合同到期的问题
- 请问Run-Time Library跟普通的有什么区别阿?
- [求助]学习vc,谁提供点源代码来看看,谢谢
- 哪儿有win32api 文档(高分相送)
- 如何实现打开一个ICON文件或BMP文件并将其显示出来?
- 关于TIMER的问题
class CA
#include "b.h"
//class CB;
class CA
{
public:
CA();
virtual ~CA();
CB m_b;
};文件 b.h class CB;
#include "a.h"
//class CA;
class CB
{
public:
CB();
virtual ~CB();
CA m_a;
};我要说一点的就是,像你这样头文件相互包含,程序稍大一些以后,可能会很不好办。
#include "b.h"
class CB;
class CA
{
public:
CA();
virtual ~CA() { delete m_b; }
CB* m_b;
};文件 b.h
class CA;
class CB
{
public:
CB();
virtual ~CB() { delete m_a; }
CA* m_a;
};CA, CB 的构造函数不能写在头文件里,应该写在CPP里。
CA::CA()
{
m_b = new CB;
}CB::CB()
{
m_a = new CA;
}