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 in

    int 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 ist

    also 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


Anmelden zum Antworten