[C++] Problem z funkcją klasy

Cześć, napisałem taki kod i nie wiem czemu źle działa. W pierwszym wynik powinien być 31.5, a w drugim 6.0. Ja tymczasem mam jakieś kosmiczne liczby…

#include


class Kumulator {

  public:

    virtual void dodaj(double elem) = 0;

    virtual void wynik(void) const = 0;

    virtual ~Kumulator() { }

};


class Sumator:public Kumulator {

  double suma;

  public:  

    void dodaj(double elem) { suma+=elem; }

    void wynik(void) const { std::cout << suma << '\n'; }

    ~Sumator() { }

};


class Mnoznik:public Kumulator {

  double abc;

  public:  

    void dodaj(double elem) { abc*=elem; }

    void wynik(void) const { std::cout << abc << '\n'; }

    ~Mnoznik() { }

};


int main()

{

  Kumulator *sum=new Sumator;

  sum->dodaj(10.0);

  sum->dodaj(20.0);

  sum->dodaj(1.5);

  sum->wynik();


  Kumulator *num=new Mnoznik;

  num->dodaj(1.0);

  num->dodaj(2.0);

  num->dodaj(3.0);

  num->wynik();


  delete sum;

  delete num;


  system("pause");

  return 0; 

}

W klasie Sumator brakuje konstruktora zerującego składową suma;

W klasie Mnoznik brakuje konstruktora ustawiającego składową abc na początkową wartość 1.

A powiedz jakie są początkowe wartości zmiennych składowych Sumator::suma i Mnoznik::abc? No właśnie…

Jestem początkujący w C++ - po prostu na to nie wpadłem. Dzięki wielkie.