void onp(string & in, Stos & s)
{
stringstream ss;
ss << in;
char t=0;
Element * tmp;
while(ss>>t)
{
if(isdigit(t))
{
ss.putback(t);
double u;
ss>>u;
tmp = new Liczba(u);
cout << "Dodaje obiekt klasy Liczba: " << u << endl;
}
else if(t=='+' || t=='-' || t=='/' || t=='*' || t=='^')
{
tmp = new Dzialanie(t);
cout << "Dodaje obiekt klasy Dzialanie: " << t << endl;
}
else
{
cout << "W wyrazeniu wystepuje nieprawidłowy znak. Wychodze...";
exit (1);
}
s.put2(tmp);
}
}
Nie rozumiem zachowania wskaźnika tmp - cały czas ma taki sam adres (sprawdzam w debuggerze). Nie powinno być tak, że za każdym "new Liczba(u)" powinien mu być przypisywany inny adres? Jak to zrobić poprawnie?