Új hozzászólás Aktív témák

  • cog777

    senior tag

    Sziasztok!

    Most nézem át a c++ operátor overloading-ját, van két megoldás:

    class Point
    {
    public:
    Point(int x, int y) {Point::x=x;Point::y=y;}
    Point operator+(Point &p) {return Point(x+p.x, y+p.y);}

    private:
    int x,y;
    }

    A kérdésem:
    "Point operator+(Point &p) {return Point(x+p.x, y+p.y);}" Miért lehet elérni a "p.x"-et??? (illetve a p.y-t?) (Az adatrejtés elve miatt kérdezem, hiszen private )

    A másik megolds szinte ugyanez:

    class Point
    {
    public:
    Point(int x, int y){Point::x=x;Point::y=y;}
    friend Point operator+(Point &p, Point &q) {return Point(q.x+p.x, q.y+p.y);}

    private:
    int x,y;
    }

    Itt már értem, hiszen a friend el tudja érni a private adatokat!

    HP ZBook Studio 15.6 G8 Mobile Workstation - Windows 11

Új hozzászólás Aktív témák