我喜欢DRY的概念(不要重复自己[oops]),但C++的头文件概念违背了这种编程规则.完全在头文件中定义一个类成员有什么缺点吗?如果对模板做的是正确的,为什么不对正常的类?我有一些缺点和好处的想法,但你的是什么?
Kri*_*son 23
将所有内容放在头文件中的可能优点:
将所有内容放在头文件中的可能缺点:
Aar*_*ron 17
嗯 - 一个问题是,通常实现的更改比类定义更频繁 - 因此对于大型项目,您最终必须为每个小的更改重新编译世界.
不在头文件中实现类的主要原因是:您的类的使用者是否需要知道其实现细节?答案几乎总是没有.他们只想知道他们可以用什么界面与班级互动.让类实现在头文件中可见会使得理解这个界面变得更加困难.
除了紧凑性的考虑和将界面与实现分离之外,还存在商业动机.如果您开发了要销售的库,您(可能)不想泄露您所销售的库的实施细节.
你不是在重复自己.您只能在一个标题中编写一次代码.它由预处理器重复,但这不是你的问题,并且它不违反DRY.
如果对模板做的是正确的,为什么不用于普通类
对于模板来说,这不是正确的做法.它只是唯一一个真正起作用的.
无论如何,如果在头文件中实现一个类,您将获得以下优点和缺点:
而且......就是这样,真的.
我的大部分代码往往都在标题中,但这是因为我的大部分代码都是模板.
| 归档时间: |
|
| 查看次数: |
10074 次 |
| 最近记录: |