triviale frage zu structs



  • hallo leute!
    Ich habe hier wieder mal eine dumme frage 🙄 , nähmlich:

    struct myStruct{
        int a;
        int b;
    };
    
    //irgendeine struktur
    myStruct x={123, 456};
    
    //eine funktion, die eine solche struktur als parameter erwartet
    myFunctionExpectingMyStructAsParameter(x);
    

    wie schreibe ich denn die beiden letzten befehle in eine zeile, sodass ich keine extra zeile für die deklaration der struktur zu verschwenden brauche, und stattdessen das alles direkt in den aufruf der funktion packe?

    funktioniert zwar auch so wunderbar, sieht aber hässlich aus, will's irgendwie weg haben 🤡

    thx im voraus 😃



  • Stichwort Konstruktoren:

    struct myStruct
    {
      int a;
      int b;
    
      //Ctor
      myStruct(int p1,int p2) : a(p1),b(p2) {}
    };
    
    myFunctionExpectingMyStructAsParameter(myStruct(123,456));
    


  • damned!
    wie kommt das, dass ich sowas noch nie gesehen hab ey? 😕 😃
    aber methoden dürfen die dinger doch nicht haben, hoffe ich mal??

    danke schön CStoll 👍 🤡



  • Andrey schrieb:

    aber methoden dürfen die dinger doch nicht haben, hoffe ich mal??

    doch. in C++ kannst du eine 'struct' wie eine 'class' verwenden...
    🙂



  • oookay^^ also, wenn ihr mir jetzt noch erzählt, dass man von structs andere structs mit vererbung ableiten kann, dann fange ich an zu heulen, weil ich den unterschied zwischen structs und klassen nicht mehr erkenne... 🤡 ich dachte eigentlich, dass structs in c++ genau dasselbe wären wie in c, und in c hatten die structs das alles nicht, oder irre ich mich da schon wieder?



  • struct und class unterscheiden sich nur im Standardzugriff: Member und Vererbung sind bei struct standardmäßig public, bei class private. Ansonsten sind sie komplett gleich.



  • Also der grosse Unterschied zwischen Structs und Klassen war doch bisher schon immer, das Klassen in Bereiche eingeteilt werden koennen wie: private, public, protected

    Gerade solch private Attribute machen doch eine Klasse erst aus.

    Und gerade das ist der Punkt, was auch die Vererbung so interessant macht.



  • aha! na dann hab ich heut was dazugelernt 😃



  • LMwoot schrieb:

    das Klassen in Bereiche eingeteilt werden koennen wie: private, public, protected

    Geht mit structs auch.

    Gerade solch private Attribute machen doch eine Klasse erst aus.

    Member einer Klasse sind per Default privat, die von structs public. Was aber nichts dran ändert dass auch in structs private oder in classes public Member existieren dürfen.

    @Andrey:
    Du kannst auch classes von structs und structs von classes ableiten, wenn's Dir Spaß macht 😉



  • nun... das is auch fuer mich neu 🙂 so habe ich mich noch niemals mit structs auseinander gesetzt.... man lernt immer wieder dazu 🙂 danke



  • LordJaxom schrieb:

    Du kannst auch classes von structs und structs von classes ableiten, wenn's Dir Spaß macht 🙂

    ach nö, das ist nicht nötig, ich hab auch so schon keinen durchblick bei meinem momentanen projekt 🤡
    nachdem ich das alles hier gelesen habe, spiele ich schon mit dem gedanken, schnell mal alle structs in classen umzuschreiben, bei klassen habe ich mir zumindest schon angewöhnt, explizit anzugeben, was ich public und was private haben will, bei structs habe ich drüber nie einen gedanken verschwendet... 😃

    wie auch immer^^...

    thx @ all nochmal 🙂


Anmelden zum Antworten