为什么我声明了友元,但还是不可以访问Circle的私有属性?

img


#include <iostream>
using namespace std;
const double PI = 3.14159;
class Calculate;

class Circle            //圆类
{
    friend int Calculate::circles_area_compare(Circle& c1, Circle& c2);
private:
    int x, y;                                //圆心坐标
    double r;                            //圆的半径
public:
    Circle(int xx, int yy, double rr)
    {
        x = xx;
        y = yy;
        r = rr;
    }
    void print()
    {
        cout << "圆心坐标: (" << x << ", " << y << "),半径:" << r << endl;
    }
};

class Calculate {
public:
    int circles_area_compare(Circle& c1, Circle& c2);
};

int Calculate::circles_area_compare(Circle& c1, Circle& c2) {
    double s1, s2;
    s1 = PI * c1.r * c1.r;
    s2 = PI * c2.r * c2.r;
    int result;
    if (s1 > s2) {
        result = 1;
    }
    else if (s1 == s2) {
        result = 0;
    }
    else {
        result = -1;
    }
    return result;
}

《C++编程思想》