鱼兮游兮 2020-03-24 11:24 采纳率: 0%
浏览 244

怎么在如下类的组合中访问并改动私有成员?

各位大佬,话不多说,直接上代码。

#include <iostream>
using namespace std;
class Point {
public:
    Point() { x = 0; y = 0; }
    Point(int xx, int yy) { x = xx; y = yy; }
    void setX(int xx) { x = xx; }     void setY(int yy) { y = yy; }
    int getX() { return x; }            int getY() { return y; }
private:
    int x;
    int y;
};

class Circle {
public:
    Circle(int _x, Point _y) :radius(_x), center(_y) { cout <<_x<<_y.getX()<<_y.getY(); }    //Circle类的构造函数
    Circle(int X, int Y, int Z) :radius(X), center(Y, Z) { cout << X << Y << Z; }    //Circle类的构造函数2
public:

private:
    int radius;
    Point center;
};
int main() {
    Circle c1(1, 0, 0);     Point p(2, 2);
    Circle c2(1, p);
    return 0;
}
## ``1. 在不改变Point类的前提下,为Circle类新增move函数,有两个参数,参数为移动的位移。例如: move(1,2)表示向右移动一个单位,向上移动2个单位。
2. 在主函数main()中,输出move前后的圆心位置和半径。


大佬们,已经做了半个小时了,不知道怎么改,还请各位赐教,,小萌新在线蹲答案。没有c币,但是谢谢,,
  • 写回答

1条回答 默认 最新

  • zx289544730 2020-03-24 14:15
    关注

    1.在Circle的public:下增加
    void move(int x, int y)
    {
    center.setX(center.getX() + x);
    center.setY(center.getY() + y);
    }

    增加
    void printInfo()
    {
    cout << "radius:" << radius << " x:" << center.getX() << " y:" center.getY();
    }

    2.在main中增加
    c1.printInfo();
    c1.move(1, 2);
    c1.printInfo();

    评论

报告相同问题?

悬赏问题

  • ¥60 远程协助启动mysql服务
  • ¥15 想问一下STM32创建工程模板时遇到得问题
  • ¥15 Fiddler抓包443
  • ¥20 Qt Quick Android 项目报错及显示问题
  • ¥15 而且都没有 OpenCVConfig.cmake文件我是不是需要安装opencv,如何解决?
  • ¥15 oracleBIEE analytics
  • ¥15 H.264选择性加密例程
  • ¥50 windows的SFTP服务器如何能批量同步用户信息?
  • ¥15 centos7.9升级python3.0的问题
  • ¥15 安装CentOS6时卡住