
定义一个点类Point包括x坐标和y坐标(int)。定义一个圆类Circle,
【程序设计】---------------------------------------------------------题目:定义一个点类Point...
【程序设计】
---------------------------------------------------------
题目:
定义一个点类Point包括x坐标和y坐标(int)。定义一个圆类Circle,有数据成员半径
和表示圆心坐标的点类对象。圆类成员函数包括构造函数、求面积的函数和输出显示圆心
坐标及圆半径的函数。
输出结果见样张.JPG
-------------------------------------------------------*/
#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=0,int yy=0)
{x=xx;
y=yy;}
int getX()
{return x;}
int getY()
{return y;}
};
class Circle
{
int radius;
Point p1;
public:
Circle(Point pp,int rr)
{p1=pp;
radius=rr;}
Circle(){radius=0;} //这里为什么要加上Circle(){radius=0;} ?
void show();
double getArea()
{return radius*radius*PI;}
void SetCC(Point pp,int rr)
{p1=pp;
radius=rr;}
};
/********** 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;
}
我想知道,为什么Circle类里面为什么要加上Circle(){radius=0;}?不加就会出现“no appropriate default constructor available”?
本人C++初学者,请说的简单,详细一些 展开
---------------------------------------------------------
题目:
定义一个点类Point包括x坐标和y坐标(int)。定义一个圆类Circle,有数据成员半径
和表示圆心坐标的点类对象。圆类成员函数包括构造函数、求面积的函数和输出显示圆心
坐标及圆半径的函数。
输出结果见样张.JPG
-------------------------------------------------------*/
#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=0,int yy=0)
{x=xx;
y=yy;}
int getX()
{return x;}
int getY()
{return y;}
};
class Circle
{
int radius;
Point p1;
public:
Circle(Point pp,int rr)
{p1=pp;
radius=rr;}
Circle(){radius=0;} //这里为什么要加上Circle(){radius=0;} ?
void show();
double getArea()
{return radius*radius*PI;}
void SetCC(Point pp,int rr)
{p1=pp;
radius=rr;}
};
/********** 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;
}
我想知道,为什么Circle类里面为什么要加上Circle(){radius=0;}?不加就会出现“no appropriate default constructor available”?
本人C++初学者,请说的简单,详细一些 展开
展开全部
首先,类一般是有默认的无参构造函数的,但是因为定义了Circle的有参构造函数,Circle(Point pp,int rr),所以系统不会在生成默认的无参构造函数
然后因为在main函数中有: Circle c1(p1,7),c2;其中的c2并没有给它参数,系统会认为它使用的是无参构造函数
所以这就原因了。如果不加上Circle(){}的话,系统会认为c2是不合法的,因为没有它的无参构造函数。
然后因为在main函数中有: Circle c1(p1,7),c2;其中的c2并没有给它参数,系统会认为它使用的是无参构造函数
所以这就原因了。如果不加上Circle(){}的话,系统会认为c2是不合法的,因为没有它的无参构造函数。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询