背景
我有一个抽象类,类似于
class IConverter{ public: virtual void DoConvertion() = 0; };
将有许多具体的类只是实现DoConvertion方法.
class TextConverter : public IConverter{ public: virtual void DoConvertion(){ // my code goes here } }; class ImageConverter : public IConverter{ public: virtual void DoConvertion(){ // my code goes here } };
这样会有很多具体的实现.我创建了一个头文件,比如说CharacterConverter.h,它有一个抽象类IConverter.
题
由于我的具体类只实现了DoConvertion方法,是否需要为每个具体类创建单独的头文件?我的意思是它需要为所有具体类创建ImageConverter.h,TextConverter.h等等吗?所有这些头文件都将包含与IConverter抽象类相同的代码.
有什么想法吗?
这不是必需的.这基本上是一个判断电话.
如果每个类的实现都很简单,你可以将它们全部放在一个.h和一个.cpp中
如果实现有点长,那么为每个实现使用单独的.h和.cpp文件可能更简洁.
为每个类使用不同的.h/.cpp的一些优点:
它将保持代码整洁有序
减少编译工作:其中一个实现的更改不需要重新编译所有其他实现
更快的编译时间:一些编译器可以一次编译多个文件,例如Visual Studio的/ MP开关.使用多个文件,您将获得更快的编译时间.
其他文件只能包含他们需要的内容而不是所有内容
更快的链接时间:由于增量链接,链接时间将减少
使用版本控制,您可以仅回顾对特定派生类的更改,而不必对大量1 .h/.cpp文件进行所有更改,以查找特定派生类中的一个更改.