(求帮助,初学)C++题目:把定义平面直角坐标系上的一个点的类…
把定义平面直角坐标系上的一个点的类CPoint作为基类,派生出描述一条直线的类CLine,再派生出一个矩形类CRect。要求成员函数能求出两点的距离、矩形的周长和面积等。...
把定义平面直角坐标系上的一个点的类CPoint作为基类,派生出描述一条直线的类CLine,再派生出一个矩形类CRect。要求成员函数能求出两点的距离、矩形的周长和面积等。我初学VC++谢谢
展开
展开全部
CLine 和 CPoint 不是 is_a 的关系,最好不要这样继承。
你可以写 CLine : pair<CPoint , CPoint> {}
对于矩形你可以写:CLine : pair<CPoint , CPoint> {}
写成 has_a 也是可以的,那就是这样 :
class CLine {
CPoint a , b ;
} ;
class CRect {
CPoint leftUp , rightDown ;
} ;
包含具体操作的并且使用继承并且符合is_a语义的代码如下:
#include <cmath>
#include <algorithm>
using namespace std ;
class CPoint {
public :
double x , y ;
} ;
class CLine : public pair<CPoint , CPoint> {
public :
double length() {
double dx = first.x - second.x ;
double dy = first.y - second.y ;
return sqrt(dx * dx + dy * dy) ;
}
} ;
class CRect : public pair<CPoint , CPoint> {
public :
double girth() {
double dx = first.x - second.x ;
double dy = first.y - second.y ;
return abs(dx) * 2.0 + abs(dy) * 2.0 ;
}
double area() {
double dx = first.x - second.x ;
double dy = first.y - second.y ;
return abs(dx) * abs(dy) ;
}
} ;
int main() {
return 0 ;
}
你可以写 CLine : pair<CPoint , CPoint> {}
对于矩形你可以写:CLine : pair<CPoint , CPoint> {}
写成 has_a 也是可以的,那就是这样 :
class CLine {
CPoint a , b ;
} ;
class CRect {
CPoint leftUp , rightDown ;
} ;
包含具体操作的并且使用继承并且符合is_a语义的代码如下:
#include <cmath>
#include <algorithm>
using namespace std ;
class CPoint {
public :
double x , y ;
} ;
class CLine : public pair<CPoint , CPoint> {
public :
double length() {
double dx = first.x - second.x ;
double dy = first.y - second.y ;
return sqrt(dx * dx + dy * dy) ;
}
} ;
class CRect : public pair<CPoint , CPoint> {
public :
double girth() {
double dx = first.x - second.x ;
double dy = first.y - second.y ;
return abs(dx) * 2.0 + abs(dy) * 2.0 ;
}
double area() {
double dx = first.x - second.x ;
double dy = first.y - second.y ;
return abs(dx) * abs(dy) ;
}
} ;
int main() {
return 0 ;
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
东莞大凡
2024-08-07 广告
2024-08-07 广告
作为东莞市大凡光学科技有限公司的一员,我们深知Matlab圆点标定板在相机标定中的重要性。该标定板通过均匀分布的圆点,帮助精确计算相机参数,优化成像效果。Matlab强大的编程功能,使得我们能够灵活设计标定板,调整圆点大小、数量和分布,以满...
点击进入详情页
本回答由东莞大凡提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询