Datenkapselung in C. Möglich?
-
Für mich ist einer der Vorteile von C++ die Datenkapselung. Ist sowas auch in C möglich:
person.hstruct person { char * name; int alter; };
main.c
#include <stdio.h> #include "person.h" void main(void) { person *p = (person*)malloc(sizeoc(struct person)); p->alter = 4; /* FEHLER: Nicht erlaubter Zugriff auf privates Element */ ... }
-
die struct-definition darf nicht von deinem code aus sichtbar sein, z.b. indem du 'handles' oder IDs rausgibst und nur der code, der objekte anlegt, manipuliert und zerstört weiss, wie die objekte aussehen.
-
du kannst deine variablen static deklarieren, dann sind nur die funktionen, die sich innerhalb der gleichen datei befinden, in der lage diese zu verändern.