Properties in C++



  • Hallo ich habe hier ein kleines Beispiel gefunden, wie man so eine Art Property unter C++ verwirklichen kann.

    Aber was ist wenn ich jetzt ein statisches Property haben möchte?
    Dann muss ich ja einige Änderungen vornehmen.
    Also bei dem Property, der get/set Methode und der Variable, habe ich auf static gesetzt.
    Aber was muss ich im Konstruktor ändern damit es funktioniert?

    PropTest()
      {
        Count.SetContainer(this);
    		Count.SetSetter(PropTest::setCount);
        Count.SetGetter(PropTest::getCount);
      }
    


  • lord_fritte schrieb:

    Hallo ich habe hier ein kleines Beispiel gefunden, wie man so eine Art Property unter C++ verwirklichen kann.

    Davon würde ich abraten. Es benötigt übermäßig viel Speicherplatz (bei einem 32-Bit-Compiler pro Property zusätzlich 20 bis 36 Bytes), ist ineffizient, da es das Inlining von Setter- und Getter-Methoden wegen der Benutzung von Methodenzeigern verhindert, und vor allem bringt es dir, von der Lesbarkeit abgesehen, nicht die Vorteile, die Properties üblicherweise auszeichnen. Selbst die bessere Lesbarkeit verwirrt in C++ eher, weil die Benutzung eines Properties üblicherweise aussieht wie ein Member-Zugriff.


Anmelden zum Antworten