frage zur klasse
-
wie kann ich jetzt datA1 und datB in der methode int summe
addieren da datA1 private ist???#include <iostream> using namespace std; class A{ int datA1; protected: int datA2; public: A(){datA1=0;datA2=0;} void ausgabe(){cout<<"datA1="<<datA1<<"datA2="<<datA2<<endl;} void eingabe(){ cout<<"Bitte datA1 eingaben:";cin>>datA1; cout<<"Bitte datA2 eingaben:";cin>>datA2; } int getSum() { return datA1+datA2; } }; class B: public A { private: int datB; public: B() { A::A(); datB=0; } void ausgabe(){ A::ausgabe(); cout<<"datB"<<datB; } void eingabe(){ A::eingabe(); cout<<"Bitte datB";cin>>datB; } int summe(){ } }; int main() { }
-
Hallo
Ich weiß nicht recht, ob ich kapiert habe, was du willst, aber du könntest dir eine Methode schreiben, die dir datA1 liefert und public ist.
chrische
-
Gar nicht. Du hast es ja hoffentlich nur deswegen private gemacht damit B nicht darauf zugreifen kann.
Kurt
-
Mach entweder datA1 ebenfalls protected oder bau dir in A eine Methode der Art:
int getdatA1() const {return datA1;}
-
das war ein klausur aufgabe da sollte nur die
klasse B verändert werden und das ganze sollte sich inint summe()abspielen
-
Dann war die Lösung vermutlich
int summe() { return datB + (getSum() - datA2); }
-
Du kannst doch auf die getSum() und datA2 der Klasse A zugreifen, also kannst du dir daraus auch datA1 berechnen. (OK, das hilft nur im konkreten Fall)
int B::summe() { return A::getSum() - datA2 + datB; // datA1+datA2 }PS: Wieso stellst du eigentlich die slebe Frage doppelt?
-
Ich glaub dir zwar nicht, aber du kannst ja ein bisschen Brute-Force Code fabrizieren:
int summe() { return (A::getSum() - A::datA2) + datB; }Edit: eh, werd ich lahm
-
danke leute das wird wohl die lösung sein
zu CStoll ich dachte es wäre beim erstenmal net drin
weil ich es dann im dorum net gesehen hab
vieleicht war ja auch dem tag so viel traffic das mein post gleich
hintengelandet istalso war net absicht :xmas1: :xmas1: :xmas1: :xmas1:
-
Wer macht solche Klausuraufgaben? Da muss man ja über die Programmlogik hinaus denken

-
also ich nbin nicht auf die idee gekommen
aber falls es dich interresiert es Prof. Dr. Zou