#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)
uj5u.com熱心網友回復:
你這句又沒有改變P1,你好好看看作用域。void SetCC(Point pi,int r)
{
Point p1(pi); //這個是定義的是臨時變數p1就是你的資料成員p1,你改為p1.SetP(pi.getX(),pi.getY())就可以了
radius=r;
}
uj5u.com熱心網友回復:
void SetCC(Point pi, int r) {p1 = (pi);
radius = r;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/107081.html
標籤:基礎類
上一篇:modbus
