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.