C++中两个类互相包含的策略
来源:互联网 发布:户外徒步地图软件 编辑:程序博客网 时间:2024/05/22 03:26
C++中两个类互相包含的策略
一,问题描述
A类包含B类的实例,而B类也包含A类的实例
二,求解策略
1)错误的解法
A文件包含B,而B文件又包含A文件,这样就形成死循环
- #include "B.h"
- class A
- {
- int i;
- B b;
- };
- #include "A.h"
- class B
- {
- int i;
- A a;
- };
2)正确的写法以及注意事项
1)主函数只需要包含b.h 就可以,因为b.h中包含了a.h
2)a.h中不需要包含b.h,但要声明class b。在避免死循环的同时也成功引用了b
3)包含class b 而没有包含头文件 "b.h",这样属于一种前向声明,那么只能声明b类型的指针或引用,一定不能实例化。
a.h:
- #include <iostream>
- using namespace std;
- class b;
- class a
- {
- public:
- b *ib;
- void putA()
- {
- cout<<"这是A类"<<endl;
- }
- };
b.h:
- #include <iostream>
- #include "a.h"
- using namespace std;
- class b
- {
- public:
- a ia;
- void putB()
- {
- cout<<"这是B类"<<endl;
- }
- };
主函数
- #include <stdio.h>
- #include <tchar.h>
- #include "b.h"
- int _tmain(int argc, _TCHAR* argv[])
- {
- b B;
- B.putB();
- B.ia.putA();
- getchar();
- return 0;
- }
- C++中两个类互相包含的策略
- 互相包含的两个类
- C++中两个类的头文件互相包含问题
- C++中两个类互相包含
- 两个类互相包含的问题
- C++中两个类相互包含的求解策略
- C++两个类互相包含
- 两个类相互包含的处理策略
- c++中两个类的头文件互相包含编译出错的解决办法
- 解决MFC中两个类互相包含头文件所导致的错误
- c++ 学习笔记(47)-C++中两个类中互相包含对方对象的指针问题
- 【C++ Primer】两个类相互包含的求解策略
- 【C++ Primer】两个类相互包含的求解策略
- C++ Primer】两个类相互包含的求解策略
- 类互相包含的办法
- C++中两个类简单互相包含会形成死循环
- C++ 两个包含类互相调用彼此的类成员变量和方法
- VC++ 在两个文件互相包含时会出现的错误
- UIImage+Dsp
- python urllib从远程服务器下载文件到本地
- 黑马程序员_String
- HDU 4280 Island Transport(网络流)
- C++标准转换运算符const_cast
- C++中两个类互相包含的策略
- Linux多线程学习(三)pthread_key_create
- 获取winform的工程路径
- QT creator 第一个程序 qt学习笔记第三章
- 解决initializing java tooling(1%)
- 英语练习What do you do?
- HDU 4284 Travel(12年天津 状态DP)
- 网站分析的烦恼连载(优化篇上)
- Android4.0和Android2.3,2.2以及其他版本DOM解析XML问题