C ++ Integer,Binary和Decimal类

时间:2012-02-03 19:05:13

标签: c++ oop inheritance

在大学里,我的任务是在c ++中设计和实现三个类:Integer(作为抽象),Binary和Decimal,数组作为数字存储AND Integer应包含算术运算的虚方法。

所以我对最后一点有一些误解......方法有什么标志,以及如何在子类中定义它们?

2 个答案:

答案 0 :(得分:0)

这不是一件容易的事,是算术操作二元操作,虚拟方法是单一的调度机制。

事实上,问题的优雅解决方案应该需要Multimethods,而不是C ++本机。

正如一个提示,让我给你一个关于添加的想法: 看看C ++ dual dispatchvisitor pattern

答案 1 :(得分:-1)

class Integer {
  public:
    virtual void Add(Integer &B) { } = 0; // Adds B to the current value, etc..

}
class Decimal : public Integer {
  public:
    void Add(Decimal &B) { /* do sth */ }
}

int main(void) {
  Integer *a = new Decimal();
  Integer *b = new Decimal();
  a->Add(b);
}