类的组合的初始化

xuyequancplus 2015-01-11 12:31:42
#include <iostream>
using namespace std;
const double PI=3.14159;

class Point
{
int x,y;
public:
Point(int a=0,int b=0)
{
x=a;
y=b;
}

void SetP(int a,int b)
{
x=a;
y=b;
}
int getX(){return x;}
int getY(){return y;}
};
class Circle
{
Point p1;
int radius;
public:

Circle(Point pi=Point(3,4),int r=0):p1(pi),radius(r)
{

}
void SetCC(Point pi,int r)
{
Point p1(pi);
radius=r;
}
void show();
double getArea(){return PI*radius*radius;}


};
void Circle::show()
{
cout<<"圆心X坐标="<<p1.getX()<<",圆心Y坐标="<<p1.getY()<<endl;
cout<<"圆半径="<<radius<<endl;
}
int main()
{


Point p1(9,2),p2; //9为x坐标,2为y坐标
Circle c1(p1,7),c2; //7为半径 p1为圆心点
c1.show();
cout<<"圆的面积="<<c1.getArea()<<endl;
p2.SetP(1,1);//改变圆心坐标
c2.SetCC(p2,4);//以p2为圆心坐标,改变c2的半径
c2.show();//显示c2
cout<<"圆的面积="<<c2.getArea()<<endl;
return 0;
}
c2的圆心坐标为什么显示为(3,4)而不是(1,1)
...全文
94 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
我不懂电脑 2015-01-13
  • 打赏
  • 举报
回复
void SetCC(Point pi, int r) { p1 = (pi); radius = r; }
过客猫2022 2015-01-13
  • 打赏
  • 举报
回复
你这句又没有改变P1,你好好看看作用域。 void SetCC(Point pi,int r) { Point p1(pi); //这个是定义的是临时变量p1就是你的数据成员p1,你改为p1.SetP(pi.getX(),pi.getY())就可以了 radius=r; }

13,874

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧