C ++ целые, двоичные и десятичные классы - PullRequest
0 голосов
/ 03 февраля 2012

В университете у меня есть задача спроектировать и реализовать три класса в c ++: Integer (как реферат), Binary и Decimal, с массивом в качестве хранилища цифр И Integer должен содержать виртуальные методы арифметических операций.

Итак, у меня есть некоторые недоразумения по поводу последнего пункта ... какая сигнатура должна быть у методов и как их определять в дочерних классах?

Ответы [ 2 ]

0 голосов
/ 04 февраля 2012

Это непростая задача, будучи бинарными операциями арифметической операции и виртуальными методами единого механизма диспетчеризации.

На самом деле элегантное решение проблемы должно требовать Мультиметоды , не родное в C ++.

В качестве подсказки позвольте мне дать вам представление о сложении: Посмотрите на C ++ dual dispatch и шаблон посетителей .

0 голосов
/ 03 февраля 2012
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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...