Wie wird in C gekapselt?
-
Prototyp3 schrieb:
Also in etwa so gelingt die 'Kapselung' in C. (Bei C++ - APIs sehe ich ja als Anwender immer den kompletten internen Aufbau der zur Verfügung gestellten Klassen
Das sieht man nur dann, wenn es einen Designfehler gibt. Das von Dir für C beschriebene Design würde man in C++ anderweitig umsetzen.
Variante eins:
Abstract Factory mit Rückgabe eines Smart Pointers auf eine Abstract Class. Die konkreten Klassen implementiert man dann unsichtbar von Nutzer. Nur deren Konstruktionsname, -nummer o.ä. muß man bekannt machen.
Variante zwei:
Bridge Pattern (auch Handle/Body oder Pimpl idiom genannt)
Hier wird eine Interface Klasse definiert und die Implementierung in einer separaten Klasse vorgenommen, die der Nutzer nicht sieht.