[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
[an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]![]() |
![]() |
![]() |
|||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
![]() |
![]() |
![]() |
Ahoy! (Ja, mit subject er ikke specielt beskrivende, men det var det bedste jeg kunne op med) Når ptr er en pointer til en istringstream, bør *ptr så ikke kunne bruge dennes funktionalitet? Problemet er fra Bjarne Stroustrups bog The C++ programming language[1] hvor cin udskiftes med *input, der er en pointer til en istringstream (istream* input) Jeg mener at have fulgt eksemplet så godt som muligt, men da bogen er ret fattig på egentlig kode, har jeg formentlig klokket i det et sted. Navnlig der, hvor han angiver at forekomster af cin skal skiftes ud med *input. Jeg har bare blindt udskiftet, men det var tydligvis ikke det rigtige at gøre. gcc's kvabbabelser ser således ud: $ g++ -Wall calculator.cpp calculator.cpp: In function `Token_value get_token()': calculator.cpp:103: error: request for member `get' in `input', which is of non-class type `std::istream*' calculator.cpp:120: error: request for member `putback' in `input', which is of non-class type `std::istream*' calculator.cpp:127: error: request for member `get' in `input', which is of non-class type `std::istream*' calculator.cpp:128: error: request for member `putback' in `input', which is of non-class type `std::istream*' Forståeligt nok, istream* er ikke det samme som istream, men hvad bør jeg så i stedet have stående i min kode? Koden ligger på http://pastebin.ca/422715 [1] Ja, jeg har set at andre ikke har været overmåde tilfredse med den, men jeg vil nu alligevel give den et skud. Den er ret kodefattig, men det har på den anden side tvunget mig til selv at finde på tingene. -- //anders
![]() |
![]() |
![]() |
||||||||||||
|
||||||||||||||
![]() | ||||||||||||||
|
||||||||||||||
![]() |
![]() |
![]() |