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;
}