句柄类的应用以减少重复编译
来源:互联网 发布:淘宝手机收藏地址转换 编辑:程序博客网 时间:2024/06/13 14:58
//head.h struct A { int i;}; class B { A* a; public: B(int n = 0); void show(); ~B(); };
//head.cpp #include "head.h" #include <iostream.h> B::B(int n) { a = new A; a->i = n; } void B::show() { cout << a->i; } B::~B() { delete a; }
//main.cpp #include <iostream> #include "head.h" using namespace std; int main() { B b(1); b.show(); return 1; }
如果我们要修改结构体A,比如我们需要对A添加一个成员变量,这时候head.h改变了,从而包含了它的head.cpp和main.cpp都需要重新编译
我们知道类B是一个包装了类A的句柄类,对于这种形式,如何修改代码使得修改A的定义时能减少重新编译呢?
观察head.h,我们发现在B的申明过程中并不需要完全定义类A,利用这点我们可以稍微修改下代码,修改后的代码如下:
//head.h class B { struct A;//不完整的类类型说明 A* a; public: B(int n = 0); void show(); ~B(); };
//head.cpp #include "head.h" #include <iostream.h> struct B::A //A的完全定义 { int i; }; B::B(int n) { a = new A; a->i = n; } void B::show() { cout << a->i; } B::~B() { delete a; }
//main.cpp #include <iostream> #include "head.h" using namespace std; int main() { …………………………………………………………………………<p style="COLOR: red; FONT-SIZE: 16px"><strong>具体请点击:<a target=_blank href="http://www.verydemo.com/demo_c101_i26628.html" target="_blank">http://www.verydemo.com/demo_c101_i26628.html</a></strong></p>
0 0
- 句柄类的应用以减少重复编译
- 句柄类的应用中减少重复编译的方法
- 如何减少C++程序的重复编译?
- 减少重复的代码
- Android 封装自己的工具类,减少重复引用Context
- cocos2d-x 减少编译时间/免除重复编译
- cocos2d-x 减少编译时间/免除重复编译
- 进程句柄的应用
- 如何有效的减少重复的代码
- 如何有效的减少重复的代码
- 如何有效的减少重复的代码
- 以减少或消除缺货的风险
- 显式编写空析构函数以减少编译依赖
- C# 使用绑定句柄来减少进程的内存耗用
- 如何减少重复编译(对于大项目而言)
- java编程中减少一个类中重复代码的窍门
- 减少文件之间的编译依赖
- 减少文件间的编译依赖
- C++数据成员
- 机房收费重构——关于面向对象和分层的纠结
- Div+CSS 布局大全DIV+CSS布局大全
- 美媒称中国正造第二架歼31 大量应用激光打印
- MPI聚合通信之MPI_Barrier函数
- 句柄类的应用以减少重复编译
- Flex 复杂XML 解析XML
- Unix下配置Scheduler的过程和出现的NQSError问题
- bmp 转 dxf
- 【Python】删除和拷贝文件
- 黑马程序员_java高新(二)_反射
- 无锁HashMap的原理与实现
- HTTP状态码返回值说明
- C语言中的字节对齐