【发布时间】:2016-06-12 08:45:52
【问题描述】:
假设我有一个函数 f=sigma(phi(x)),我想为函数 sigma 和 phi 分配不同的形式。假设我们有两个 sigma 函数和两个 phi 函数,所以我们有 4=2* 2种组合。我怎样才能做到这一点?
如果只对f=sigma(x),我把sigma写成f中的虚函数,把sigma的具体形式定义为子类。
class sigma1: public class f{sigma=sigma1}
class sigma2: public class f{sigma=sigma2}
但是当涉及到 phi 时,我真的很困惑。我想我再次需要将 phi 定义为虚函数。但是对于一个特定的 phi,它应该是
class phi1 : public sigma1, public sigma 2
class phi2 : public sigma1, public sigma 2
假设我想创建一个对象 sigma1+phi1。我怎么能这样做?如果我简单地写
phi1 object1
那么显然它将无法知道使用 sigma1 或 sigma2。虚拟继承似乎也不起作用。我知道我可以像
这样创建四个类class phi1 : public sigma1 {phi=phi1}
class phi2 : public sigma2 {phi=phi1}
class phi3 : public sigma1 {phi=phi2}
class phi4 : public sigma2 {phi=phi2}
但这似乎并不聪明....
【问题讨论】:
-
能否给我们一个真实的代码示例,最好是minimal reproducible example。
标签: c++ inheritance