Witajcie. Mam za zadanie usunięcie wszystkich bugów z pewnego programu (calculator02buggy - http://www.stroustrup.com/Programming/calculator02buggy.cpp). Usunąłem wszystkie błędy które znalazłem:
(W sumie nie musicie tego czytać, jednak może błąd popełniłem gdzieś tu/nie usunąłem jakiegoś)
W term():
case '*':
left *= primary();
t = ts.get();
dodałem
'break;'
lass Token
na
class Token
W primary():
error("')' expected);
dodałem "
W Token_stream:
Token get()
na
Token Token_stream::get()
W expression():
double left = term(;
nadouble left = term();
w case '-':
```cpp
left += term()
na
left -= term()
--------------------------------------------------
W main() [w bloku try, oczywiście] dodałem:
```cpp
double val;
W Token get():
if (full) // do we already have a Token ready?
{
full=false; // remove token from buffer
return buffer;
}
na
if (Token_stream.full)//do we already have a Token ready?
{
Token_stream.full=false; // remove token from buffer
return Token_stream.buffer;
}
dodałem do switch(ch):
case '8':
Po próbie kompilacji:
(60): error C2059: syntax error : '.'
(69): (...): syntax error : '.'
(70): (...): syntax error : missing ';' before '{'
(71): (...): syntax error : missing ';' before '.'
(71): (...): syntax error : missing ';' before '.'
(72): (...): token '.' is illegal after UDT 'Token_stream'
(72): (...):'Token_stream' : illegal use of this type as an expression
(72): (...): 'Token_stream' : illegal use of this type as an expression
(72): (...): left of '.buffer' must have class/struct/union
PS: Uczę się z książki "Programowanie. Teoria i praktyka z wykorzystaniem C++" Bjarne Stroustrup'a. W tym rozdziale dopiero było właśnie takie małe wprowadzenie do klas, więc nie wymagajcie ode mnie jakiejś ich szczególnej znajomości.