Eine frage



  • hi leute wie kann ich in der methode

    int summe()
    

    die summe von datA1 und datB rechnen 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()
    {
    
    }
    


  • Du musst den Wert entweder als Parameter übergeben oder ihn min. protected machen



  • Entweder du deklarierst datA1 als protected, dann ist er auch aus abgeleiteten Klassen verfügbar, oder du spendierst Klasse A eine (protected oder public) Methode getA1(), mit der du auf den Wert zugreifen kannst.

    Hm, Möglichkeit 3 wäre noch:

    int B::summe()
    {
      return
        A::getSum() //datA1+datA2
        -A::datA2   //protected, also erreichbar
        +datB;      //eigenes Element, also erreichbar
    }
    

Anmelden zum Antworten