Martin Heibel Guest
|
Posted: Wed May 05, 2004 7:59 pm Post subject: Re: Typumwandlungen |
|
|
Christian Banse wrote:
| Quote: | Das geht auch in C++ nicht. Du würdest einen Segmentation Fault oder
Bus Error bekommen und tagelang danach suchen! Dein Problem ist
unabhängig von der Programmiersprache.
Kleines Gegenbeispiel:
class Animal {
public:
void MakeSound( ) { printf( "(nothing)n" ); }
};
class Cow : public Animal {
public:
void MakeSound( ) { printf( "mOooOn" ); }
};
int main( ) {
Animal* animal = new Animal( );
Cow* cow = (Cow*) animal;
Das ist keine Typwandlung, sondern Dummfug. |
| Quote: | cow->MakeSound( );
animal->MakeSound( );
}
hoth:~# g++ animal.cpp -o animal
hoth:~# ./animal
mOooO
(nothing)
Die meisten C++-Compiler erzeugen aus diesem Beispiel Code der funktioniert, |
weil Du nicht auf Daten des Objekts zugreifst, aber hier sind Probleme
vorprogrammiert. Wer so etwas in einem ernsthaften Projekt macht, ist in
meinen Augen ein Saboteur, denn das ist bösartig.
| Quote: | Die ClassCastException in Java besagt, das Dein Objekt eben KEIN
MyDocument ist. Darum kannst Du es auch nicht umwandeln. Wäre es eins,
versteckt hinter der Maske eines Document, würde die Umwandlung auch
funktionieren.
Das ist eines der Java-Features, die Java-Anwendungen i.Allg. langsamer aber |
robuster machen als C++-Anwendungen.
| Quote: | Ich werde das Gefühl nicht los, Du hast ein par grundlegende
Mechanismen der objektorientierten Programmierung noch nicht
verstanden...
Ich werde das Gefühl nicht los, dass du noch keine einzige Zeile C++-Code
geschrieben hast
Es ist offensichtlich, dass Du nicht weißt, was Du tust. |
F'up2 de.comp.lang.iso-c++
Gruß,
Martin
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|