Fragen zum Konstruktor



  • Ich tue mich zur zeit etwas schwer mit dem Verständniß
    der Klassen unter C++
    ganz kurze frage am rande:
    Der Konstruktor ist praktisch die die Funktionsdeklaration einer normalen Funktion?
    Hab ich das soweit richtig verstanden.
    O.K. Konstruktoren haben keinen Rückgabe wert aber im prinzip verhält es sich so , oder ?

    Als Lektüre benutzte ich C++ in 21 Tagen , irgendwie komme ich mit der Klassenthematik nicht so recht weiter.
    Könnt ihr mir hierzu gute Literatur empfehlen...
    Danke
    Pit



  • Ein Konstruktor erzeugt eine Instanz einer Klasse (Klasse = benutzerdefinierter Typ) . Eine Klasse ist ein Bauplan für eine Instanz. Eine Instanz ist sozusagen eine Variable eines benutzerdefinierten Types. Ja, man kann sagen, ein Konstruktor ist eine besondere Funktion ohne Rückgabedatentyp.

    sunnydays schrieb:

    Als Lektüre benutzte ich C++ in 21 Tagen.

    Verbrenn das Buch, und MEIDE alle Bücher mit den Titeln schnell, 21, dummies und A-Z .
    Buchempfehlungen:
    - C++ Primer 4. Auflage von Moo (nur noch in Englisch verfügbar)
    - Der C++ Programmierer von Ulrich Breymann
    - Siehe auch: http://www.c-plusplus.net/forum/251551



  • sunnydays schrieb:

    Der Konstruktor ist praktisch die die Funktionsdeklaration einer normalen Funktion?
    Hab ich das soweit richtig verstanden.

    oO Hat Jürgen Wolf Kinder bekommen?
    Nein! Google mal RAII. Ein Konstruktor ist eine Funktion, die ein Objekt Initialisiert und bei der Deklaration eines solchen aufgerufen wird. Grob gesagt.

    class A
    {};//Der Compiler erzeugt in diesem Fall einen default Konstruktor
    
    int main()
    {
        A a;//Hier wird er aufgerufen (er tut rein gar nix)
    }//Hier wird der vom Compiler erzeugte Destruktor aufgerufen.
    

    Einem Konstruktor können beliebig viele Parameter übergeben werden. Es gibt einige spezielle Konstruktoren wie

    - Kopierkonstruktor (Parameter ist eine Referenz auf eine konstante Instanz der Klasse
    - Default-Konstruktor (keine Parameter)



  • Deklaration?



  • volkard schrieb:

    Deklaration?

    ??? Wo sonst, bei seinem Geburtstag?
    Oder formaler:

    Bei einem benannten (edit: das ist eig. irrelevant) automatischen Objekt wird der Konstruktor dann aufgerufen, wenn bei der Ausführung des Programms auf seine Daeklaration getroffen wird...


  • Mod

    Daeklaration?



  • Dieklaraschon 🤡

    @Hacker:
    Lies mal Unterschied zwischen Deklaration und Definition nach.



  • hustbaer schrieb:

    @Hacker:
    Lies mal Unterschied zwischen Deklaration und Definition nach.

    Der ist mir - keine Sorge- bekannt. Leider sehe ich es so: eine Definition kann beliebig oft auftreten - eine Deklaration nur einmal. Und ein Konstruktor wird schließlich nicht 3-4 mal aufgerufen?

    Meint Sachen ihr wie extern ...
    Wirds einfach bei der ersten Definition aufgerufen?



  • Hacker schrieb:

    hustbaer schrieb:

    @Hacker:
    Lies mal Unterschied zwischen Deklaration und Definition nach.

    Der ist mir - keine Sorge- bekannt. Leider sehe ich es so: eine Definition kann beliebig oft auftreten - eine Deklaration nur einmal.

    Ah, die berühmte One-Declaration-Rule. Punkt für Dich.



  • ODR - One-Definition-Rule 😡



  • volkard schrieb:

    Ah, die berühmte One-Declaration-Rule. Punkt für Dich.

    👍



  • ROFL 😃 😃 😃

    @Hacker
    Liest bitte nochmal nach was Deklaration und Definition bedeuten.


Anmelden zum Antworten