8个回答

C++如果都能优先用前向声明,还要include做什么?

闲云
2个点赞 👍

C++编译时间长确实是个问题,但是减少编译时间并不是做具体项目的人优先考虑的问题,除非它真的长到严重影响工作了。现代的C++语言和具体编译器会采用把头文件改成模块、以及预编译头文件等方式来减少编译时间,不要自作聪明采用不规范的方法。

绝大多数情况下,用前向声明替代标准库、系统开发包和特定用途库的头文件都是极不可取的,属于小聪明误大事。因为很多重要的头文件里面包含了非常多的条件编译分支,绝对不可以从头文件里提取出你当前用到的声明放到cpp文件里而扔掉头文件,否则编译配置选项稍微一变化,就要出错了。

还有,C++的头文件和C还不一样,C的头文件里面基本上都是数据类型声明和函数原型,而C++的头文件里面最多的是模板。题主看的书可能是C语言或者C++早期的书,已经过时了。

编辑于 2024-05-06 09:09・IP 属地浙江
望山
自由评论 (0)
分享
Copyright © 2022 GreatFire.org