c++题目:设计两个类,点(point),圆(circle)要求:
(1)点具有坐标xy属性,获取属性和移动等方法(2)圆从点派生,具有pointr(半径)属性,获取属性和计算圆面积等方法...
(1)点具有坐标xy属性,获取属性和移动等方法 (2)圆从点派生,具有point r(半径)属性,获取属性和计算圆面积等方法
展开
2个回答
展开全部
#include <iostream>
using namespace std;
class Point //Point 类的声明
{
public: //外部接口
Point(int xx=0, int yy=0) {X=xx;Y=yy;} //构造函数
Point(Point &p); //拷贝构造函数
int GetX() {return X;}
int GetY() {return Y;}
private: //私有数据
int X,Y;
};
//成员函数的实现
Point::Point(Point &p)
{
X=p.X;
Y=p.Y;
cout<<"拷贝构造函数被调用"<<endl;
}
//形参为Point类对象的函数
void fun1(Point p)
{ cout<<p.GetX()<<endl;
}
//返回值为Point类对象的函数
Point fun2()
{
Point A(1,2);
return A;
}
//主程序
int main()
{
Point A(4,5); //第一个对象A
Point B(A); //情况一,用A初始化B。第一次调用拷贝构造函数
cout<<B.GetX()<<endl;
fun1(B); //情况二,对象B作为fun1的实参。第二次调用拷贝构造函数
B=fun2(); //情况三,函数的返回值是类对象,函数返回时,调用拷贝构造函数
cout<<B.GetX()<<endl;
}
class Circle //声明类Circle 及其数据和方法
{
public: //外部接口
Circle(float r); //构造函数
float Circumference(); //计算圆周长
float Area(); //计算圆面积
private: //私有数据成员
float radius;
};
// 类的实现
Circle::Circle(float r) { radius=r; } // 构造函数初始化数据成员radius
float Circle::Circumference() // 计算圆的周长
{
return 2 * PI * radius;
}
float Circle::Area() // 计算圆的面积
{
return PI * radius * radius;
}
大体就是这样了...
using namespace std;
class Point //Point 类的声明
{
public: //外部接口
Point(int xx=0, int yy=0) {X=xx;Y=yy;} //构造函数
Point(Point &p); //拷贝构造函数
int GetX() {return X;}
int GetY() {return Y;}
private: //私有数据
int X,Y;
};
//成员函数的实现
Point::Point(Point &p)
{
X=p.X;
Y=p.Y;
cout<<"拷贝构造函数被调用"<<endl;
}
//形参为Point类对象的函数
void fun1(Point p)
{ cout<<p.GetX()<<endl;
}
//返回值为Point类对象的函数
Point fun2()
{
Point A(1,2);
return A;
}
//主程序
int main()
{
Point A(4,5); //第一个对象A
Point B(A); //情况一,用A初始化B。第一次调用拷贝构造函数
cout<<B.GetX()<<endl;
fun1(B); //情况二,对象B作为fun1的实参。第二次调用拷贝构造函数
B=fun2(); //情况三,函数的返回值是类对象,函数返回时,调用拷贝构造函数
cout<<B.GetX()<<endl;
}
class Circle //声明类Circle 及其数据和方法
{
public: //外部接口
Circle(float r); //构造函数
float Circumference(); //计算圆周长
float Area(); //计算圆面积
private: //私有数据成员
float radius;
};
// 类的实现
Circle::Circle(float r) { radius=r; } // 构造函数初始化数据成员radius
float Circle::Circumference() // 计算圆的周长
{
return 2 * PI * radius;
}
float Circle::Area() // 计算圆的面积
{
return PI * radius * radius;
}
大体就是这样了...
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询