c++ klasen bitte hilfe



  • Hallo

    Hallo, ich habe hier 5 kleine cods aus c++ .

    Kann mir jemand helfen bei dieser aufgabe...
    Es sind klassen , aber ich muss wissen was jede was macht zeile bis zeile.
    Kann mir jemand helfen zbs zeile 1 macht das und dies ... usw..

    Code:
    class Base {
    public:
    virtual void f();

    };
    class Derived : public Base {
    private:
    virtual void f();
    };

    Base *b=new Derived;
    (*b).f();
    Derived *d=new Derived;
    (*d).f();

    Code:

    //2)a

    class A {
    virtual void Func() {puts(Func A);
    }
    };
    class B: class A {
    };
    main() {
    B a;
    a.Func();
    }

    //2)b
    // zweiter code 2)b ist fast gleich wie 2)a nur was ist anders???

    class A{
    virtual void Func() { puts(Func);

    }
    };
    class B : class A {
    public:
    void Func() { puts(Func B); }
    };
    main() {
    B a;
    a.Func();
    }

    Code:
    int main() {
    XmlElement elements[10];
    char names[10][30],values[10][30];

    //... poziv neke funkcije koja popunjava polja names i values

    for (int i=0; i<10; i++) {
    elements[i].SetName(names[i]);
    elements[i].SetValue(values[i]);
    }
    }

    Code:
    class B {
    public :
    int func() const;
    private:
    int clan;
    };
    int B::func() const {
    clan=53;
    return clan;

    }

    so das sind die 5 codes , jeder cod ist für sich selbst und nicht alle mitannander verbunden.

    Ich bedancke mich in voraus...



  • bitte sofort hilfe

    👎



  • Hallo

    Du kannst ja wenigstens mal Codetags benutzen und sagen, was du selber schon rausbekommen hast.

    chrische



  • LAsERdva schrieb:

    ...
    Kann mir jemand helfen bei dieser aufgabe...

    110 - Da werden Sie geholfen.

    Sorry, aber lernen ganz ohne Eigenarbeit wird bis zur Erfindung kompletter Hirnimplantate nicht gehen.
    Schau mal unter "Tipps für Newbies" und "FAQs" - da bekommst Du Verweise auf ganz gute Tutorials (= "Lernanleitungen"). Kürzer als die wäre hier auch nichts, was wir schreiben könnten....

    Gruß,

    Simon2.



  • das problem ist das ich totaler anfänger im c++ bin.
    Und hoffe das ich hier von euch hilfe bekomme.

    Ich bin für jeden der hilft danckbar.

    gruss aus Bosnien und Herzegowienen.



  • Naja,

    das, was in Deinen Beispielen drin steht, sind absolute "C++-Basics" (ist ein wenig so, als wenn Du im KFZMechaniker-Forum fragst, wozu denn eigentlich die 4 runden Dinger unten da sind und was man unter "Auto" zu verstehen habe ... 😉 ).
    Damit beginnt so ziemlich jedes C++-Einsteigerbuch. Und auch dort wird es nicht "mal eben erklärt", sondern gründlich erarbeitet (möglichst mit Übungsaufgaben für den Leser).
    ... und das solltest Du meines Erachtens auch tun: Schnapp Dir ein Buch/Tutorial/Skript/... und arbeite Dich erstmal in die Materie ein. Hier mit Frage-/Antwortspielchen das ersetzen zu wollen, bringt Dir nichts und verschwendet (ehrlich gesagt) wirklich die Zeit von Leuten, die gerne helfen wollen.
    Du wirst noch sehen, dass es für konkrete Fragen hier immer offene Ohren und gute Ratschläge gibt, aber ein wenig Vorleistung mußt Du schon bringen .... wir können Dir das eigene Denken nicht abnehmen. 😉

    Gruß,

    Simon2.



  • Simon2 schrieb:

    Naja,

    das, was in Deinen Beispielen drin steht, sind absolute "C++-Basics" (ist ein wenig so, als wenn Du im KFZMechaniker-Forum fragst, wozu denn eigentlich die 4 runden Dinger unten da sind und was man unter "Auto" zu verstehen habe ... 😉 ).
    Damit beginnt so ziemlich jedes C++-Einsteigerbuch.

    hm...ich habe mir grad mal meine c++ anfängerbücher und tutorials angeschaut, und komischerweise beginnt kein einziges mit klassen und virtuellen funktionen!

    würde es also nicht unbedingt als absolute basics einstufen im sinne von variablen, konstanten, ein und ausgabe etc...

    class Base {
    public:
    virtual void f();
    
    };
    class Derived : public Base {
    private:
    virtual void f();
    };
    
    Base *b=new Derived;
    (*b).f();
    Derived *d=new Derived;
    (*d).f();
    
    class A {
    virtual void Func() {puts(Func A);
    }
    };
    class B: class A {
    };
    main() {
    B a;
    a.Func();
    }
    
    // zweiter code 2)b ist fast gleich wie 2)a nur was ist anders???
    
    class A{
    virtual void Func() { puts(Func);
    
    }
    };
    class B : class A {
    public:
    void Func() { puts(Func B); }
    };
    main() {
    B a;
    a.Func();
    }
    
    int main() {
    XmlElement elements[10];
    char names[10][30],values[10][30];
    
    //... poziv neke funkcije koja popunjava polja names i values
    
    for (int i=0; i<10; i++) {
    elements[i].SetName(names[i]);
    elements[i].SetValue(values[i]);
    }
    }
    
    class B {
    public :
    int func() const;
    private:
    int clan;
    };
    int B::func() const {
    clan=53;
    return clan;
    
    }
    


  • ser1al schrieb:

    Simon2 schrieb:

    Naja,

    das, was in Deinen Beispielen drin steht, sind absolute "C++-Basics" (ist ein wenig so, als wenn Du im KFZMechaniker-Forum fragst, wozu denn eigentlich die 4 runden Dinger unten da sind und was man unter "Auto" zu verstehen habe ... 😉 ).
    Damit beginnt so ziemlich jedes C++-Einsteigerbuch.

    hm...ich habe mir grad mal meine c++ anfängerbücher und tutorials angeschaut, und komischerweise beginnt kein einziges mit klassen und virtuellen funktionen!

    würde es also nicht unbedingt als absolute basics einstufen im sinne von variablen, konstanten, ein und ausgabe etc...

    ...

    Stimmt schon, war ein wenig übertrieben.
    Aber wenn der Fragesteller überhaupt keine Ahnung davon hat, was der Code macht, gehe ich erstmal davon aus, dass er nichteinmal die Syntax zu lesen weiß ... und das wird schon auf den ersten Seiten beschrieben.
    Konkretere Fragen wie "Warum steht da virtual ?" hätte ich auch noch angemessen gefunden, aber so ein allgemeines "Was tut das ?" ist für mich einfach zu wenig eigene Vorleistung.

    Aber schön, wenn andere die Zeit finden, ihm zu helfen.

    Gruß,

    Simon2.



  • hi, ich bin auch totaler anfänger (komme von Basic)
    und nur deswegen probier ich den code mal ins "deutsche" zu übersetzen
    allerdings kann ich nicht auf richtigkeiten garantieren 🙄

    // Erzeugt eine Klasse "Base"
    class Base
    {
    };
    
    class Base
    {
    public: // <-- sagt das wir alles was unter public kommt, auch auserhalb der
            // klasse aufgerufen kann (öffentlich)
    virtual void f(); // <--- ist eine void f() funktion/methode die zur Base
                      // Klasse gehört, das virtual bedeutet soviel wie, das die
                      // funktion NUR zur Base Klasse gehört, also wird in keine
                      // abstracte(Erweiterte) klasse übernommen
    };
    
    class Base
    {
    public:
    virtual void f();
    };
    
    class Derived : public Base // Eine Klasse "Derived" als erweiterung von "Base"
                                // Erstellen
    {
    private:
    virtual void f();           // diese funktion unterscheidet sich von der Base
                                // funktion da diese virtual ist, das heist es wird
                                // nicht auf die void f() der base klasse
                                // zugegriffen
    };
    
    Base *b=new Derived; // Erstellt einen Pointer "b" der auf den typ/klasse Base
                         // zeigt, aber die erweiterung "Derived" erstellt
                         // jedes "Derived" ist ja auch ein "Base" aber nicht umgek.
    (*b).f();            // funktionsaufruf -> es müsste die void f() funktion von
                         // derived aufgerufen werden
    Derived *d=new Derived; // das gleiche wie bei base, nur das hier der typ als
                            // derived gegeben wurde
    (*d).f();               // es dürfte kein unterschied zur obigen funktion geben
    

    wobei wo ich mir das jetzt gerade genauer ansehe, ist das doch schon irgendwie
    blödsinn, man hätte ja auch einfach beim ersten auf Derived anstatt auf base
    pointen können. Denke da ist etwas nicht so ganz richtig, aber ich werds trotzdem einfach mal posten

    [Edit]
    Kann es sein das der code absichtlich falsch ist ?
    kommt mir langsam so vor das das eher eine übungsaufgabe ist.
    Denn "Class A : Class B" ist auf jeden fall falsch

    Gruss Tony



  • TonyM schrieb:

    das virtual bedeutet soviel wie, das die funktion NUR zur Base Klasse gehört, also wird in keine abstracte(Erweiterte) klasse übernommen
    };

    Genau andersherum - das "virtual" bedeutet, daß abgeleitete Klassen diese Methode neu definieren dürfen.

    wobei wo ich mir das jetzt gerade genauer ansehe, ist das doch schon irgendwie blödsinn, man hätte ja auch einfach beim ersten auf Derived anstatt auf base pointen können. Denke da ist etwas nicht so ganz richtig, aber ich werds trotzdem einfach mal posten

    Das ist schon richtig - der Vorteil dieser Konstruktion ist, daß du verschiedene Derived-Klassen definieren kannst und dann je nach Bedarf über Base-Zeiger weiterreichen kannst. Und dank der virtuellen Funktionen verhält sich jede dieser Klassen richtig.



  • CStoll schrieb:

    Genau andersherum - das "virtual" bedeutet, daß abgeleitete Klassen diese Methode neu definieren dürfen.

    ja damit wollte ich auch ausdrücken das abgeleitete klassen eine eigene version
    der methode haben müssen.

    CStoll schrieb:

    Das ist schon richtig - der Vorteil dieser Konstruktion ist, daß du verschiedene Derived-Klassen definieren kannst und dann je nach Bedarf über Base-Zeiger weiterreichen kannst. Und dank der virtuellen Funktionen verhält sich jede dieser Klassen richtig.

    macht sinn, wieder etwas gelernt 🙂

    Gruss Tony



  • TonyM schrieb:

    CStoll schrieb:

    Genau andersherum - das "virtual" bedeutet, daß abgeleitete Klassen diese Methode neu definieren dürfen.

    ja damit wollte ich auch ausdrücken das abgeleitete klassen eine eigene version
    der methode haben müssen.

    Können, nicht müssen.



  • Ich war einige zeit nicht da darum keine antwort von mir.

    Ich dancke dir TonyM und alle anderen die Helfen wollen. Dieser kod ist für mich zu schwerr weill ich nicht programmiere "professionel" aber brauche es für die schulle. Mit eure Hilfe würde ich es schafen, ich bitte euch noch einmal mir zu helfen 👍
    dancke nochmal

    PS: TonyM hast super erklärt nur kannst du auch die anderen cods so beschreiben??? DANCKE





  • das problem ist das ich nicht programmieren will ich habe andere interesen aber ich muss diese aufgabe machen weill ich sonst durchfalle!!!

    Bitte hilft mir diesen code zu beschreiben, es sind nur die notwendig damit ich weiter komme...

    Ich bitte alle nocheinmal um hilfe.

    Ich bedancke mich in voraus.



  • Dir wird nur geholfen wenn du noch ein bisschen mehr bettelst als wie du es sowieso schon machst.

    Also los, betteln.

    👍



  • LAsERdva schrieb:

    das problem ist ... muss diese aufgabe machen weill ich sonst durchfalle!!!...

    Tja, warum wohl...

    LAsERdva schrieb:

    das problem ist das ich nicht programmieren will ich habe andere interesen ...

    Gbt es einen besseren Grund, um durchzufallen ? 🙄

    Gruß,

    Simon2.



  • Ich bitte euch
    Ich bitte euch
    Ich bitte euch
    Ich bitte euch
    Ich bitte euch
    Ich bitte euch
    Ich bitte euch
    Ich bitte euch
    Ich bitte euch
    Ich bitte euch
    Ich bitte euch
    Ich bitte euch
    Ich bitte euch
    Ich bitte euch
    Ich bitte euch
    Ich bitte euch
    Ich bitte euch... 😞



  • Hallo

    Die ganze Zeit und Enegrie die du hier zum Fragen verwendest hättest du besser nutzen sollen, mit Hilfe der inhaltlichen Antworten und frei zugänglichen Tutorial wie dem hier zu lernen.

    Wenn du dann noch immer direkte präzise Fragen hast, werden wir die gerne beantworten. Deine Schulaufgaben macht hier aber niemand.

    bis bald
    akari


Anmelden zum Antworten