Objekterzeugung



  • Huhu Leute
    bei folgendem mini programm ist mir nicht ganz klar was dort eigentlich passiert, wenn ich so ein Objekt erzeuge. Der Standardkonstruktor wird nicht aufgerufen, da ich Ausgabe bekomm und einen Zuweisungskonstruktor gibts nicht. :p
    Ich dachte eigentlich immer dass es so einen Syntax gar nicht gibt aber ich habe daheim nur Dev CPP, so kann es sein dass es an Dev liegt ? 😕

    Danke schonmal für eure Antworten
    mfg Dweb
    :xmas1:

    #include <iostream>
    #include <conio.h>
    using namespace std;
    
    class A
    {
         private:
              int x;
    
         public:
              A()
              {
                   x=7;
                   cout << x;
              }     
    };
    
    int main()
    {
         A a();
    
         getch();
         return 0;
    }
    


  • Mit dem Befehl "A a();" deklarierst du eine Funktion namens a mit dem Rückgabetyp A.
    also einfach die "()" weglassen: "A a;"



  • "... und im übrigen bin ich der Meinung, dass dies in die FAQ sollte !"
    😃

    @DWeb:
    Vergleiche mal

    A a();
    

    mit

    int f();
    

    ... dann wird's vielleicht klar, was Du dem Compiler da in Wirklichkeit über a mitteilst.

    Gruß,

    Simon2.



  • Ansonsten streichst du am Besten noch das "#include <conio.h>" und ersetzt dann "getch()" durch "cin.get()". 🙂


Anmelden zum Antworten