13个回答

你认为 C++ 最不应该存在的特性是什么?

举报民科专业户
143个点赞 👍

显然是头文件

这玩意确实把C++编程搞成了地狱般的存在,当你写类成员函数的时候,增加一个成员函数需要同时修改两个文件。于是这一点点小小的不便导致了大家尽可能的不加新函数,单个函数写得越来越大。

你可能觉得约束自己不把函数写长很容易,但如果你要带一个团队,甚至跟多个团队,多方供应商合作,你就不可能规约所有成员了。

C语言其实没有这个问题,因为模块内函数可以随便加,不需要写进头文件。而C++类定义在头文件中,你要加个成员函数,哪怕是私有的,也得改头文件。

pimpl设计模式可以部分解决这个问题。但这个框架毕竟不是C++默认的东西,而且你需要一些代码来实现它。——pimpl大致给人的感觉是用户必须用一些奇技淫巧来实现这个语言本来就应该优雅提供的东西。


如果一开始 C++ 就完全抛弃头文件,强制 class 定义必须写进 module,仅当定义C接口时才写头文件,那么现在 C++ 的编程环境会好很多。——也不会出现 C++2020 发布多年, module 的流行程度仍然八字没有一撇的现状了。

pansz
自由评论 (0)
分享
Copyright © 2022 GreatFire.org