folgendes Problem:
Ich moechte per cin eine Eingabe lesen, die aber auch Leerzeichen und
Kommata enthaelt, z.B:
tabelle.Name, tabelle.PLZ where not (tabelle.Name like "B*H")
Muss ich jetzt in einer Schleife immer wieder cin aufrufen, bis die
Eingabe leer ist und die einzelnen Teile aneinanderkopieren, oder gibt
es einen einfacheren Weg ?
Gruss,
Dirk.
--
Dirk Olbertz
olb...@do.isst.fhg.de
: Trotzdem ist der explizite Aufruf von Destruktoren natuerlich moeglich und der
: Quelltext ist mit einem zusaetzlichen "e" auch kompilierfaehig:
Ich bin mir ziemlich sicher (habe es aber nicht nachgeguckt), dass der
explizite Aufruf von Destruktoren fuer automatische Objekte oder der
explizite Aufruf des Basisklassen-Destrukturs fuer 'this' im Destruktor
einer abgeleiteten Klasse in "undefined behavior" resultiert (also z.B.
mal schnell eine geeignete Festplatte formatiert wird...), wenn es
nicht sogar "ill-formed" ist (dann muesste es der Compiler abfangen, um
standard-konform zu sein).
Dagegen ist der explizite Aufruf von Destruktoren fuer Objekte, die mit
"placement new" angelegt wurden notwendig, um "undefined behavior" zu
vermeiden...
: Jetzt meine Frage:
: template<class T> class Liste {...};
: ...
: typedef ListePtr<T> *Liste<T>; <- Das kriegt der Compiler
: (zumindest BC4.5) nicht hin.
: Wie ist die richtige Syntax ?
Das geht in C++ auch nicht, weder so, noch mit irgendeiner andere
Syntax: 'typedef's koennen keine Templates sein (soweit ich weiss...).
Was allerdings geht, ist spezifische Typen zu definieren, etwa
typedef ListePtr<int> *IntListe;
--
<mailto:dietma...@uni-konstanz.de>
<http://www.informatik.uni-konstanz.de/~kuehl/>
I am a realistic optimist - that's why I appear to be slightly pessimistic
Hi,
>1. Die Destruktoren der Basisklasse werden automatisch aufgerufen, auch
> wenn sie 'virtual' deklariert sind. Das ist ein Sonderregel fuer
> Destruktoren.
Trotzdem ist der explizite Aufruf von Destruktoren natuerlich moeglich und der
Quelltext ist mit einem zusaetzlichen "e" auch kompilierfaehig:
>class MyClass : private fstream
>{ ^
Fuer einen korrekten Lauf wuerde ich dann aber nicht garantieren (s.o.).
Jetzt meine Frage:
template<class T> class Liste {...};
...
typedef ListePtr<T> *Liste<T>; <- Das kriegt der Compiler
(zumindest BC4.5) nicht hin.
Wie ist die richtige Syntax ?
Ciao Olaf
Versuchs mal mit cin.getline(...) oder cin.gets(...).
Die Argumente weiss ich nicht auswendig, aber ein Blick in iostream.h
und Methoden der Klasse istream sollte weiterhelfen.
Torsten Vogt
--
---------------------------------------------------------------------
| Torsten Vogt |
| Universitaet Mannheim - Lehrstuhl Praktische Informatik I |
| Seminargebaeude A5 |
| D-68131 Mannheim |
| |
| Tel : 0049-621/292-5132 Fax: 0049-621/292-5297 |
| email: vo...@pi1.informatik.uni-mannheim.de |
| WWW : http://pi1.informatik.uni-mannheim.de/HomePages/vogt.html |
---------------------------------------------------------------------
--
---------------------------------------------------------------------
| Torsten Vogt |
| Universitaet Mannheim - Lehrstuhl Praktische Informatik I |
| Seminargebaeude A5 |