在大学里,我的任务是在c ++中设计和实现三个类:Integer(作为抽象),Binary和Decimal,数组作为数字存储AND Integer应包含算术运算的虚方法。
所以我对最后一点有一些误解......方法有什么标志,以及如何在子类中定义它们?
答案 0 :(得分:0)
这不是一件容易的事,是算术操作二元操作,虚拟方法是单一的调度机制。
事实上,问题的优雅解决方案应该需要Multimethods,而不是C ++本机。
正如一个提示,让我给你一个关于添加的想法: 看看C ++ dual dispatch和visitor 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);
}