gpt4 book ai didi

c++ - 具体类的单独头文件 - C++

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:59:06 25 4
gpt4 key购买 nike

背景

我有一个抽象类,类似

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.hTextConverter.h 等等?所有这些头文件都将包含与 IConverter 抽象类相同的代码。

有什么想法吗?

最佳答案

这不是必需的。这基本上是一个判断电话。

如果每个类的实现都很简单,您可以将它们全部放在一个 .h 和一个 .cpp 中

如果实现有点长,那么为每个实现使用单独的 .h 和 .cpp 文件可能更清晰。

为每个类使用不同的 .h/.cpp 的一些优点:

  • 它将保持代码的组织和清洁
  • 减少编译工作:更改其中一个实现不需要重新编译所有其他实现
  • 更快的编译时间:多个编译器可以一次编译多个文件,例如 Visual Studio 的/MP 开关。使用多个文件,您的编译时间会更快。
  • 其他文件可以只包含他们需要的而不是所有的
  • 更快的链接时间:由于增量链接,链接时间将减少
  • 使用版本控制,您可以仅回顾对特定派生类的更改,而不必遍历对大量 1.h/.cpp 文件所做的所有更改以查找特定派生类中的一个更改。

关于c++ - 具体类的单独头文件 - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/559522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com