用初始化列表初始化对象时,显示初始值设定项太多

这是怎么回事呢,我把returnX,Y,R的声明去掉就不会出现初始值设定项太多了。


#include<iostream>
class point;
class robot
{
private:
    point a;
public:
    robot(int, int);
    int returnX(point& a);
    int returnY(point& a);
    int returnR(point& a);
};
class point
{
private:
    int x, y, r = 0;
public:
    point(int, int);
    friend int robot::returnX(point& a);
    friend int robot::returnY(point& a);
    friend int robot::returnR(point& a);
};
point::point(int m, int n)
{
    this->x = m;
    this->y = n;
}
robot::robot(int m, int n) :a(m, n) {}//这里的n显示初始值设定项太多
int robot::returnX(point& a) { return a.x; }
int robot::returnY(point& a) { return a.y; }
int robot::returnR(point& a) { return a.r; }
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7632424
  • 以下回答来自chatgpt:

    根据参考资料以及问题描述,无法直接判断问题出现的原因。可能是代码中存在问题,也可能是存在其他环境或配置问题导致。建议将完整的代码和具体错误提示信息提供,以便更好地分析问题和给出解决方案。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^