Vererbung mit Modifikator protected
class B : protected A
Ort und Modifikator des Elements | Zugriff von Objekt der Klasse A: | Zugriff von Objekt der KLasse B: | Zugriff von Außen: |
---|---|---|---|
private in A | ja | nein | nein |
protected in A | ja | JA | nein |
public in A | ja | ja | NEIN |
private in B | nein | ja | nein |
protected in B | nein | ja | nein |
public in B | nein | ja | ja |
Tabelle 0-1: protected-Vererbung
Beispiel für Vererbung mit Modifikator public
Basisklasse in Kunde.h
class Kunde { public: int kundennummer; Kunde(int kundennummer) { this->kundennummer = kundennummer; } };
Code 0-1: Kunde.h
Abgeleitete Klasse in KundeErweitert.h
class KundeErweitert : protected Kunde { public: KundeErweitert(int kundennummer) : Kunde(kundennummer) { } void zeigeKundennummer() { cout<<kundennummer<<endl; } };
Code 0-2: KundeErweitert.h
Hauptprogramm in main.cpp
#include<iostream> using namespace std; #include "Kunde.h" #include "KundeErweitert.h" int main(void) { Kunde k(4711); KundeErweitert ke(815); cout<<"k.kundennummer="<<k.kundennummer<<endl; k.kundennummer = 815; //GEFÄHRLICH!!, bei ke nicht möglich! cout<<"k.kundennummer="<<k.kundennummer<<endl; //Die folgende Zeile geht wegen protected-Vererbung NICHT: //cout<<"ke.kundennummer="<<ke.kundennummer<<endl; cout<<"ke.zeigeKundennummer() liefert:"<<endl; ke.zeigeKundennummer(); system("PAUSE"); }
Code 0-3: main.cpp
|