Hauptmethode



  • Hallo,
    bin gerade dabei mich mit C++ anzufreunden.
    Ich habe viel gelesen, und heute wollte ich mal mit Aufgaben anfangen.
    Tja, nun ist es doch nicht so einfach, wie es in den Büchern geschrieben steht. Also theoretisch habe ich so einiges drauf, denke ich, aber wenn es darum geht Aufgaben zu lösen bzw. etwas darzustellen....

    Naja, auf jeden Fall hat sich bei mir die Frage ergeben:
    Wie sieht eine Hauptmethode aus, in der ich ein Objekt einer Klasse A mit einem Objekt einer Unterklasse B von A erzeuge????

    Gruß



  • red mal deutsch

    Was willst du machen?

    Du hast

    KlasseA und hast KlasseB und dann noch von KlasseB eine geerbte?

    also

    KlassA, KlassB, KlassB_unterklasseB

    oder meinst du unterklasse von A. was ist B?

    Was meinst du mit Hauptmethode um objekte zu erzeugen?

    KlassA a;
    KlassB b;
    KlassB_unterklasseB bb;

    oder meinst du vererbung

    also solche fragenstellungen sind echt 👎 👎 👎



  • Ich glaube es gibt nur eine Klasse A und eine Unterklasse B. Er will offenbar mit Hilfe einer Instanz der Unterklasse eine Instanz der Oberklasse erstellen. Das ist so einfach nicht möglich, da musst du dir selbst etwas schreiben.

    Was natürlich möglich ist, ist ein Up-Cast:

    B blubb;
    A* tut_so_als_waers_a = &blubb;
    

    MfG SideWinder



  • Es gibt dieses brillante Programm "cdecl" von Dennis Ritchie, dass komplexe
    C-Vereinbarungen in englisch übersetzt und umgekehrt. So etwas wäre jetzt
    nicht verkehrt! 🙂



  • sorry
    also noch mal
    ich habe:
    class A{};
    und class B :public A{
    //hier kommt eine Hauptmethode, in der ein Objekt der Klasse A mit einem Objekt der Unterklasse (hier :B) erzeugt
    };



  • da gibts mehrere möglichkeiten operatorenüberladung oder einfach

    eine "hauptmethode" selbst implementieren.

    z.b.

    class B :public A{ 
    ...
    ...
    
    bool Copy( A &a); // hier musst du von hand die membervariablen "übergeben"
    
    //in der main.cpp ( z.b. ) dann
    A a;
    a.setblabla(2);
    ..
    ...
    ...
    B mein_b;  // default konstuktur, alle variablen "leer"
    mein_b(a);
    
    //mein_b hat alle membervariablen vom objekt a
    

    ein

    b = a; // gibt es nicht, ausser du schreibst deinen eigenen copykonstruktur ( auch von hand )



  • sorry
    soll

    NICHT

    mein_b(a);  // geht auch beim entsprechenden konstuktor
    

    aber mit der hauptmethode sieht es so natürlich aus

    mein_b.Copy(a);



  • dankeschön 🙂
    das wars auch schon


Anmelden zum Antworten