【发布时间】:2015-07-11 18:08:38
【问题描述】:
我有一个问题,我不知道如何开始解决这个问题。 我正在用 C++ 做这个。
假设我们有一些可执行程序(UNIX 平台),我们可以通过键入 my_program 来运行该程序。参数在这里是 4 个类。这些类中的每一个都必须扩展类,即写在目标程序中(在 my_program 中)。
因此,假设在 my_program 中我们有 A、B、C 和 D 类。用户知道他必须扩展这些类,因此他创建了四个子类。
class A1 : public A { ... }
class B1 : public B { ... }
class C1 : public C { ... }
class D1 : public D { ... }
这可能吗? A、B、C 和 D 类在 my_program 中,他能以某种方式扩展它们吗?
【问题讨论】:
-
不要从他们的类继承,创建一个包含他们类的实例的全新的。组合优于继承等等。
-
你的意思是这样的?
class A1 { A variable; }然后在程序中我只调用 A.methodName?实际上是非常简洁的解决方案:D 和简单 :) -
您可以将可执行文件作为共享对象加载,但这不是一个好主意。只需创建一个共享对象和随附的头文件,让 my_program 和用户程序都加载相同的共享对象
标签: c++ oop c++11 shared-libraries