Operator overloading - Class Objects as Members



  • Ich habe ein kleinen Problem...

    class Oligopoly {
    private:

    friend istream& operator>>(istream&, Vtr&); //input operator
    friend ostream& operator<<(ostream&, const Vtr&);
    // output operator

    int dimension;
    Vtr y;
    Vtr x;
    Vtr alpha;
    Vtr beta;
    Vtr kappa;
    double A;
    double epsilon;
    double mu;

    ... bla, bla, bla
    };

    istream& operator>>(istream& is , Oligopoly& Ol){
    cout<<"\nVector alpha\n";
    is>>Ol.alpha;
    ... // bla bla bla
    return is;
    }

    Vtr(vector class) ist ein Klass, das funzioniert.

    Der Compiler sagt mir, dass ich Ol.alpha nicht benutzen kann, weil alpha private ist...ich verstehe gar nicht, weil ich operator>> as friend deklariert habe.

    😕 Koennte jemand mir helfen?



  • Du hast aber einen anderen operator als friend deklariert als den, den Du unten definierst. Schau mal auf die Signaturen (Parameterliste).



  • Vielen Dank...ich hatte die Parameterliste nicht geschaut. Seit gestern Abend denke ich darueber nach.


Anmelden zum Antworten