不同项目中多个类的基类

时间:2015-05-12 13:27:27

标签: c++ inheritance

这更像是一个设计问题。

目前,我有多个类(在不同的项目中),它们具有不同的角色,但有一种常用的方法可以执行相同的任务。我正在考虑为所有这些类创建一个基类,这样每个类都可以继承这个类并实现这个方法来保存重复。

我的问题是,我应该为多个项目中的所有类都有一个基类,还是每个项目都应该有一个基类?

谢谢,

2 个答案:

答案 0 :(得分:3)

我将定义一个包含该共享方法的接口。然后我会将该接口放在它自己的项目中。然后让您具体实现参考项目并实现接口。

像这样......

  • Repositories.proj
    • IRepository
  • EntityFrameworkImpl.proj
    • 存储库:IRepository
  • NHibernateImpl.proj
    • 存储库:IRepository

答案 1 :(得分:3)

一般来说,所有项目的1个课程比为每个项目创建相同的课程要好得多。

实际上我敢说,几乎在任何情况下,重复使用相同的代码,而不是复制它。总是更好

通常,静态库是解决您当前面临的问题的最佳工具。

修改

如果你在visual studio工作,我会解决这个问题如下。创建一个包含基类声明和定义的项目。此项目应为静态库类型。

其他项目应包含包含目录中包含头文件的目录。以及包含附加依赖项目录中的lib文件的目录。