【程序员进阶】如何才能减少 C++ 代码编译时间的方法!

本文介绍了减少C++代码编译时间的三个方法:删除不必要的#include并使用前向声明,将私有成员变量转换为"impl"方法,以及避免不必要的类继承。通过实例详细解析了每种方法的实施步骤和效果,帮助程序员提高工作效率。
摘要由CSDN通过智能技术生成

C++ 的代码包含头文件和实现文件两部分, 头文件一般是提供给别人使用的, 但是一旦头文件发生改变,不管多小的变化,所有引用他的文件就必须重新编译,编译就要花时间。

假如你做的工程比较大(比如二次封装chrome这类的开发),重新编译一次的时间就会浪费上班的大部分时间,这样干了一天挺累的, 但是你的老板说你没有产出,结果你被fired, 是不是很怨啊。所以...

言归正传,怎样介绍编译时间呢, 我知道的就3个办法:

    ▷ 删除不必要的#include,替代办法 使用前向声明 (forward declared )

    ▷ 删除不必要的一大堆私有成员变量,转而使用 ”impl” 方法

    ▷ 删除不必要的类之间的继承

为了讲清楚这3点,还是举个实例比较好。

现在先假设你找到一个新工作,接手以前某个程序员写的类,如下:

//  old.h: 这就是你接收的类

     //

     #include <iostream>

     #include <ostream>

     #include <list>

     // 5 个 分别是file , db, cx, deduce or error , 水平有限没有模板类

     // 只用 file and cx 有虚函数.

     #include "file.h"// class file

     #include "db.h"// class db

     #include "cx.h"// class cx

     #include "deduce.h"// class deduce

     #include "error.h"// class error

     classold : publicfile, privatedb {

     public:

          old( constcx& );

       db  get_db( int, char* );

       cx  get_cx( int, cx );

       cx& fun1( db );

       error  fun2( error );

       virtualstd::ostream& print( std::ostream& ) const;

     private:

       std::list<cx> cx_list_;

       deduce       deduce_d_;

     };

        inlinestd::ostream& operator<<( std::ostream& os,constold& old_val )

       { returnold_val.print(os);

 }

这个类看完了, 如果你已经看出了问题出在哪里, 接下来的不用看了, 你是高手, 这些基

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值