夜雨&(* 2022-05-26 22:45 采纳率: 88.9%
浏览 18

为什么我声明了友元,但还是不可以访问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;
}

  • 写回答

1条回答 默认 最新

  • 赵4老师 2022-05-27 10:47
    关注

    《C++编程思想》

    评论

报告相同问题?

问题事件

  • 创建了问题 5月26日

悬赏问题

  • ¥20 ARKts悬浮窗和快捷方式问题
  • ¥15 comparecluster没有办法kegg
  • ¥15 远程访问linux主机超时
  • ¥15 odoo17存货管理优势于中国国内该行业传统ERP或MES的详细解读和举例
  • ¥15 CPU卡指令整合指令数据都在图片上
  • ¥15 odoo17处理受托加工产品
  • ¥15 如何用MATLAB编码图三的积分
  • ¥15 圆孔衍射光强随孔径变化
  • ¥15 MacBook pro m3max上用vscode运行c语言没有反应
  • ¥15 ESP-PROG配置错误,ALL ONES