C++中类与类之间的赋值语句好奇怪,还有 有带括号和不带括号的区别,望大神们指点~~~ T T 如问题描述:

/*定义一个点类Point包括x坐标和y坐标(int)。定义一个圆类Circle,有数据成员半径和表示圆心坐标的点类对象。*/#include<iostr... /*定义一个点类Point包括x坐标和y坐标(int)。定义一个圆类Circle,有数据成员半径和表示圆心坐标的点类对象。*/
#include <iostream>
using namespace std;
const double PI=3.14159;
/**********Program**********/
class Point{
int x,y;
public: Point(int xx=0,int yy=0){ x=xx; y=yy;}
void SetP(int xx,int yy ){ x=xx;y=yy; }
int getY(){ return y;}
int getX(){ return x;}};

class Circle{
double radius;
Point p1;
public:
Circle(Point m,double R):p1(m),radius(R){}
Circle():radius(0){} void show();

/*主要问题在SetCC,下面这种赋值方式是可以通过编译的。*/
void SetCC(Point m,double R){
p1=Point(m.getX(),m.getY());
radius=R;}

/*再提供第二种赋值方式:

void SetCC(Point m,double R):p1(m),radius(R){}

就是类似于构造函数Circle里的那样。
关于这两个东西我有两个问题:
★★★★★★★★★★★★★★★★★★★★★★★

两种赋值方式为什么一个可以一个不可以给SetCC赋值?

为什么第一种赋值语句里“p1=Point(m.getX(),m.getY());”getX一定要带括号?
★★★★★★★★★★★★★★★★★★★★★★★★*/

double getArea(){
return 3.14159*radius*radius;}};
/********** End **********/
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;
展开
 我来答
恋爱玫瑰ing
2013-06-03 · 超过24用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:56.6万
展开全部
p1=Point(m.getX(),m.getY())
这句的意思是 调用 对象m 的getX() 成员函数 喝 getY()函数 当然要带括号
void SetCC(Point m,double R):p1(m),radius(R){}
这句是说 调用这个函数 在函数运行值钱 初始化对象信息
也就是这个函数被调用 还没有进入函数里面的时候 先赋值了
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式