问题:
点类中:
私有数据成员int x 和 int y ,分别表示横坐标和纵坐标;
构造函数Point(),将x和y都初始化为0 ;
构造函数Point(int xx,int yy),将x和y分别初始化为xx和yy的值 ;
析构函数Point() ;Rectangle () ;
移动函数void Move(int xOff,int yOff), 将x沿横轴移动xOff个位置,将y沿纵轴移动yOff个位置 ;
写数据函数void Set(int xx,int yy),将x和y分别赋值为xx和yy的值 ;
输出函数void Display(), 以形式“Point(x,y)”输出点的信息 ;
矩形类公有继承点类:
增加了:
私有数据成员int w 和int h ,表示宽和高 ;
构造函数Rectangle(),将宽和高都初始化为0;(思考:将左下角顶点初始化为了哪个点?如何实现的)
构造函数Rectangle(int xx,int yy,int ww,int hh),将左下角顶点初始化为Point(xx,yy),将宽初始化为ww,将高初始化为hh ;
析构函数
写数据函数void Set(int xx,int yy,int ww,int hh),将x和y分别赋值为xx和yy的值,将w和h分别赋值为ww和hh的值 ;
面积函数float Area(), 计算并返回矩形的面积 ;
周长函数float Circum(), 计算并返回矩形的周长 ;
输出函数void Display(), 以形式“Rectangle((x,y),w,h),面积,周长”输出矩形的信息 ;
圆类公有继承点类:
增加了:
私有数据成员int r ,表示半径 ;
构造函数Circle(),将半径初始化为0;(思考:将圆心初始化为了哪个点?如何实现的)
构造函数Circle(int xx,int yy,int rr),将圆心初始化为Pint(xx,yy),将半径初始化为rr ;
析构函数~Circle() ;
写数据函数void Set(int xx,int yy,int rr),将x和y分别赋值为xx和yy的值,将r赋值为rr的值 ;
面积函数float Area(), 计算并返回圆的面积 ;
周长函数float Circum(), 计算并返回圆的周长 ;
输出函数void Display(), 以形式“Circle((x,y),r),面积,周长”输出圆的信息 ;
main()函数中:
创建矩形R1: 左下角顶点(2,2),宽3,高4;
以形式“Rectangle((x,y),w,h),面积,周长”输出矩形R1的信息 ;
将R1向右移动3个单位,向上移动4个单位, 再次输出其所有的信息;
创建圆C1: 圆心(1,2),半径3;
以形式“Circle((x,y),r),面积,周长”输出圆C1的信息 ;
类定义文件
#ifndef INC_1_POINT_H
#define INC_1_POINT_H
#include <iostream>
using namespace std;
class Point{
private:
int x;
int y;
public:
Point();
Point(int xx,int yy){
x = xx;
y = yy;
}
~Point();
static void Move(int xOff, int yOff);
void Set(int xx,int yy);
void Display();
};
class Rectangle :public Point{
private:
int x,y;
int w;
int h;
public:
Rectangle();
Rectangle(int xx,int yy,int ww,int hh):Point(xx,yy),x(xx),y(yy),w(ww),h(hh){
w = ww;
h = hh;
}
~Rectangle();
void Set(int xx,int yy,int ww,int hh);
float Area();
float Circum();
void Display();
};
class Circle:public Point{
private:
int x,y;
int r;
public:
Circle(int r = 0);
Circle(int xx,int yy,int rr):Point(xx,yy),x(xx),y(yy),r(rr){
int r = rr;
}
~Circle();
void Set(int xx,int yy,int rr);
float Area();
float Circum();
void Display();
};
#endif //INC_1_POINT_H
类实现文件
#include<iostream>
#include"Point.h"
using namespace std;
Point::Point(int xx = 0, int yy = 0);
Point::~Point();
void Point::Move(int xOff,int yOff){
x += xOff;
y += yOff;
}
void Point::Set(int xx,int yy){
}
void Point::Display(){
cout<<"Point("<<x<<","<<y<<")"<<endl
}
Rectangle::Rectangle();
Rectangle::Rectangle(int xx,int yy,int ww,int hh);
Rectangle::~Rectangle();
void Rectangle::Set(int xx,int yy,int ww,int hh):Point(xx,yy){
}
float Rectangle::Area(){
return w * h;
}
float Rectangle::Circum();
return 2 * w + 2 * h;
void Rectangle::Display(){
cout<<"Rectangle(("<<x<<","<<y<<"),"<<w<<","<<h<<"),"<<Area()<<","<<Circum()<<endl
}
Circle::Circle(int xx,int yy,int rr);
Circle::~Circle();
void Circle::Set(int xx,int yy,int rr);
float Circle::Area(){
return 3.14 * r * r;
}
float Circle::Circum(){
return 6.28 * r;
}
void Circle::Display(){
cout<<"Circle(("<<x<<","<<y<<"),"<<r<<"),"<<Area()<<","<<Circum()<<endl
}
主函数
#include <iostream>
#include"Point.h"
int main() {
Rectangle rec;
rec.Set(2,2,3,4);
Point::Move(3,4);
rec.Display();
Circle cir1,cir2;
cir1.Set(1,2,3);
Point::Move(3,4);
cir1.Display();
}
请问我的代码有什么问题
派生类写错了,两个子类里面都不需要定义x,y,因为X y在point点类里面是存在的。