problem mit c++ klassen + vererbung
-
bitte kann mir jemand helfen:
ich frage mich, warum in der main funktion nicht auf die vererbten elemente von CHaus zugegriffen werden kann, was mach ich falsch ?#include <stdio.h> #include <string.h> class CHaus { protected: double A; int nStock; public: void setDaten(double a,int n) { A=a; nStock=n; } void getDaten(double*a,int*n) { *a=A; *n=nStock; } }; class CMehr:public CHaus { int nWohn; public: void setDaten(int n) { nWohn=n; } void getDaten(int*n) { *n=nWohn; } }; int main() { CMehr a; double A; int nStock,nWohn; a.setDaten(13.5,5); a.setDaten(10); a.getDaten(&A,&nStock); a.getDaten(&nWohn); printf("%lf\t%d\t%d\n",A,nStock,nWohn); return 0; }
-
Überladung funktioniert nicht über Vererbungshierarchien hinweg. Du kannst das mit einer using-Deklaration in CMehr erreichen.
-
ich hab es lösen können:
int main() { CMehr a; double A; int nStock,nWohn; a.CHaus::setDaten(13.5,5); a.setDaten(10); a.CHaus::getDaten(&A,&nStock); a.getDaten(&nWohn); printf("%lf\t%d\t%d\n",A,nStock,nWohn); return 0; }
-
oder du machst es mit virtuellen funktionen... schau dir dazu mal nen paar tutorials an...