Klassenelemente sind public (default für struct), protected oder private (default für class):
class base { int privelem; // privat protected: int protelem; // protected public: int pubelem; // public ... };
Außerhalb der Klasse können die public Elemente benutzt werden:
void set(base *b) { b->pubelem=0; }
Innerhalb der Klasse und von Freunden können alle Elemente benutzt werden:
int base::getpriv() { return privelem; }
In abgeleiteten Klassen können die protected und die public Elemente benutzt werden (natürlich nicht die private Elemente):
class base {private: int privelem; // privat protected: int protelem; // protected public: int pubelem; // public }; class derived : public base { private: int derivedelem; public: derived() { derivedelem=pubelem+protelem;} };
Beispiel:
class name { char *vorname; char *nachname; protected: char *ganzername; public: name(char*, char*) // Konstruktor };
name::name(char* v, char* n) { vorname=new char[strlen(v)+1]; nachname=new char[strlen(n)+1]; strcpy(vorname,v); strcpy(nachname,n); int len = strlen(n) + strlen(v)+2; ganzername=new char[len]; ostrstream os(ganzername,len); os << v << ' ' << n; } class address : public name { char *str; char *ort; public: address(char *v, char *n, char *s, char *o) : name(v,n) { str=new char[strlen(s)+1]; ort=new char[strlen(o)+1]; strcpy(str,s); strcpy(ort,o); } void printname() { cout << ganzername; } };