Hilfe bei Erklärung von dynamic_cast und noch etwas.
-
Mein Lehrer meinte ich soll noch was erklären um von 4 auf 3 zu kommen.
Hier das was er erklärt haben möchte.Da dies eine Musterlösung ist und ich nicht durchsteige habe ich gedacht ihr könnt mir helfen.
Das Programm liegt auf www.info-elite.de/cpp.rarIch weiß, dass dynamic_cast dazu benötigt wird um zurückwirkend mit der Klasse von der vererbt wurde daraus etwas zu benutzen.
Sprich man hat Klasse1 und vererbt Klasse2. Dann kann man problemlos aus Klasse2 sachen von Klasse1 benutzen aber nur mit dynamic_cast auch anders herum.Hier die Zeile mit Objects *was das Objects genau bedeutet etc.
int my_db::finde_nah( int plz ) {
my_plz* gelesene_plz = NULL;
int gefunden;
int distanz_gefunden = 9999999;for( int i=0; i<this->Count; i++ ) {
[i]gelesene_plz = dynamic_cast<my_plz*>(this->Objects[i]);*
if( abs(gelesene_plz->get_plz() - plz) < distanz_gefunden ) {
distanz_gefunden = abs(gelesene_plz->get_plz() - plz);
gefunden = i;
}Hier die Zeile mit InsertObject
Er sagte auch was von "Wieso kann man mit neue_plz, welches das 3. Attribut von InsertObject ist so ein neues Objekt einfügen?"void my_db::Add( String name, int plz ) {
if( (plz < 0) || (plz > 99999) ) {
return;
}
my_plz *neue_plz = new my_plz( plz );
this->InsertObject( this->finde_index(name), name, neue_plz );
return;
}Ihr merkt ich brauche Hilfe. Bis morgen

Ich würde mir wohl etwas aus den Fingern saugen, da ich bei dem Lehrer nicht ganz verstehe was er will. Er erklärt sehr undeutlich und naja..schlecht.Hoffe mir kann jemand helfen.
Gruß
David
-
Das dürfte im VCL-Forum besser aufgehoben sein.
-
Auch obwohl es komplett durch und durch C++ ist?
-
InsertObject ist VCL.
InsertObject verlangt als 3. Parameter ein Object vom Typ TObject*. Du übergibst ihm ein Objekt vom Typ my_plz*. Dies ist zulässig, da my_plz von TObject abgeleitet ist. Man kann Pointer auf Objekte von abgeleiteten Klassen ohne Cast zu Objekten vom Typ Pointer auf deren Basisklasse zuweisen (Upcast).
siehe auch
http://www.ica1.uni-stuttgart.de/Courses_and_Lectures/C++/script/node18.html#SECTION00422100000000000000
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum VCL (C++ Builder) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.