Frage zu Funktionsaufruf der Basisklasse in Funktion der main-class...
-
Habe folgende Klassendef:
class C2dline : public C2dpoint
In C2dpoint gibt es folgende Funktion: (als virtual deklariert)
void C2dpoint::show () { cout << "\nm_X ist gleich : "<< m_X; cout << "\nm_Y ist gleich : "<< m_Y; cout << "\n\n"; }
damit werden die beiden privates variablen ausgegeben.
Nun sollte diese Klasse halt in die neue Klasse vererbt werden, wo es auch eine show funktion geben soll, welche 2 neue private variablen ausgeben soll, und die beiden privates der basisklasse, also alles in eine, Befehl.
Ich habe es durch Zufall so hinbekommen,weil man ja nicht auf privates der basisklasse direkt zugreifen kann, aber verstehe gar nicht warum es so geht:
void C2dline::show () { C2dpoint::show(); cout << "\nm_X2 ist gleich : "<< m_X2; cout << "\nm_Y2 ist gleich : "<< m_Y2; cout << "\n\n"; }
Es geht um "C2dpoint::show();"
Das ist doch kein Funktionsaufruf, der wäre doch nur show, aber es klappt ja so. Ist das denn richtig so, oder gäbe es auch einen anderen Weg ?
-
jo, so ist es richtig. du könntest auch noch (wenn nicht virtual) auf die Basisklasse casten. so wie du's machst ist es aber richtig, und es ist ein funktionsaufruf (was sollte es denn sonst sein?)
vielleicht magst du folgendes aber lieber:this->C2dpoint::show();
aber ist eine linie wiklich ein punkt (public vererbung bedeutet "is a")
und ist ein C vor der Klasse wirklich notwendig?