Struct privat oder public?



  • Hallo 🙂
    Ich habe mal gelesen, dass man in c++ die structs privat nutzen sollte. Ich möchte also den struct einer Funktion übergeben und bearbeiteten struct zurück geben.
    Ungefähr so:

    //Management.h
    class Management
    {
        private:
            struct produkt
            {
               int anzahl;
               int preis;
    
            };
          public:
    
    };
    //Management.cpp
    
    struct produkt findeProdukt(produkt p)
    {    
         //suchen
    
         return p;
    }
    

    Wie könnte ich das umsetzen? Geht das überhaupt, oder muss ich den struct public machen?
    Sorry für die noob Fragen 😞


  • Mod

    Vincent Lawrov schrieb:

    Ich habe mal gelesen, dass man in c++ die structs privat nutzen sollte.

    wo?



  • camper schrieb:

    Vincent Lawrov schrieb:

    Ich habe mal gelesen, dass man in c++ die structs privat nutzen sollte.

    wo?

    Weiß nicht mehr genau. Aber da stand was, dass die c++ strucs im Vergleich zu c structs wie Klassen behandelt werden können, sind jedoch implizit public. Und bei Vererbung könnte ich man es dann beeinflussen, obwohl es so nicht geplannt ist, oder?



  • Solange du nicht mal deinen Code formatieren kannst sehe ich ziemlich schwarz für deine Programmiererkarriere.



  • FPR schrieb:

    Solange du nicht mal deinen Code formatieren kannst sehe ich ziemlich schwarz für deine Programmiererkarriere.

    Tut mir leid, habs korrigiert 🙂



  • Vincent Lawrov schrieb:

    Weiß nicht mehr genau. Aber da stand was, dass die c++ strucs im Vergleich zu c structs wie Klassen behandelt werden können, sind jedoch implizit public.

    Das stimmt schon mal. Aber was hat das damit zu tun?

    Vincent Lawrov schrieb:

    Ich habe mal gelesen, dass man in c++ die structs privat nutzen sollte.



  • Belli schrieb:

    Vincent Lawrov schrieb:

    Das stimmt schon mal. Aber was hat das damit zu tun?

    Vincent Lawrov schrieb:

    Ich habe mal gelesen, dass man in c++ die structs privat nutzen sollte.

    Dass struct außerhalb der Klasse dann auch verfügbar ist. Was Sinn und Zweck der Klassenprogrammierung nachlässigt(?).



  • Vincent Lawrov schrieb:

    Belli schrieb:

    Vincent Lawrov schrieb:

    Das stimmt schon mal. Aber was hat das damit zu tun?

    Vincent Lawrov schrieb:

    Ich habe mal gelesen, dass man in c++ die structs privat nutzen sollte.

    Dass struct außerhalb der Klasse dann auch verfügbar ist. Was Sinn und Zweck der Klassenprogrammierung nachlässigt(?).

    Und wenn dort class statt struct stünde, wäre es nicht außerhalb verfügbar?



  • manni66 schrieb:

    Vincent Lawrov schrieb:

    Belli schrieb:

    Vincent Lawrov schrieb:

    Das stimmt schon mal. Aber was hat das damit zu tun?

    Vincent Lawrov schrieb:

    Ich habe mal gelesen, dass man in c++ die structs privat nutzen sollte.

    Dass struct außerhalb der Klasse dann auch verfügbar ist. Was Sinn und Zweck der Klassenprogrammierung nachlässigt(?).

    Und wenn dort class statt struct stünde, wäre es nicht außerhalb verfügbar?

    Doch. Aber wenn ich jetzt z.b den struct auf public setze, dann können doch auch weitere Klassen den Zugriff auf den struct haben. Ich möchte aber, dass man nur in Management.cpp struct bearbeiten und ändern kann. 😕



  • Womit wir wieder bei Bellis Frage sind: Was hat das mit struct zu tun?



  • struct und class ist bis auf die Standard-Sichtbarkeit der Member und Methoden vollkommen identisch 😮



  • MichelRT schrieb:

    struct und class ist bis auf die Standard-Sichtbarkeit der Member und Methoden vollkommen identisch 😮

    Mini-Anmerkungen:
    Nicht die Sichtbarkeit, sondern die Zugreifbarkeit.
    Methoden sind auch Members.
    Basisklassen sind default auch anders zugreifbar.

    Die Hauptaussage, daß struct und class quasi identisch sind, bleibt unberührt und wichtig.


Log in to reply