早教吧作业答案频道 -->其他-->
初学)C++题目:把定义平面直角坐标系上的一个点的类…把定义平面直角坐标系上的一个点的类CPoint作为基类,派生出描述一条直线的类CLine,再派生出一个矩形类CRect.要求成员函数能求出两点
题目详情
初学)C++题目:把定义平面直角坐标系上的一个点的类…
把定义平面直角坐标系上的一个点的类CPoint作为基类,派生出描述一条直线的类CLine,再派生出一个矩形类CRect.要求成员函数能求出两点的距离、矩形的周长和面积等.我初学VC++谢谢
把定义平面直角坐标系上的一个点的类CPoint作为基类,派生出描述一条直线的类CLine,再派生出一个矩形类CRect.要求成员函数能求出两点的距离、矩形的周长和面积等.我初学VC++谢谢
▼优质解答
答案和解析
CLine 和 CPoint 不是 is_a 的关系,最好不要这样继承.
你可以写 CLine :pair {}
对于矩形你可以写:CLine :pair {}
写成 has_a 也是可以的,那就是这样 :
class CLine {
CPoint a ,b ;
} ;
class CRect {
CPoint leftUp ,rightDown ;
} ;
包含具体操作的并且使用继承并且符合is_a语义的代码如下:
#include
#include
using namespace std ;
class CPoint {
public :
\x09double x ,y ;
} ;
class CLine :public pair {
public :
\x09double length() {
\x09\x09double dx = first.x - second.x ;
\x09\x09double dy = first.y - second.y ;
\x09\x09return sqrt(dx * dx + dy * dy) ;
\x09}
} ;
class CRect :public pair {
public :
\x09double girth() {
\x09\x09double dx = first.x - second.x ;
\x09\x09double dy = first.y - second.y ;
\x09\x09return abs(dx) * 2.0 + abs(dy) * 2.0 ;
\x09}
\x09double area() {
\x09\x09double dx = first.x - second.x ;
\x09\x09double dy = first.y - second.y ;
\x09\x09return abs(dx) * abs(dy) ;
\x09}
} ;
int main() {
return 0 ;
}
你可以写 CLine :pair {}
对于矩形你可以写:CLine :pair {}
写成 has_a 也是可以的,那就是这样 :
class CLine {
CPoint a ,b ;
} ;
class CRect {
CPoint leftUp ,rightDown ;
} ;
包含具体操作的并且使用继承并且符合is_a语义的代码如下:
#include
#include
using namespace std ;
class CPoint {
public :
\x09double x ,y ;
} ;
class CLine :public pair {
public :
\x09double length() {
\x09\x09double dx = first.x - second.x ;
\x09\x09double dy = first.y - second.y ;
\x09\x09return sqrt(dx * dx + dy * dy) ;
\x09}
} ;
class CRect :public pair {
public :
\x09double girth() {
\x09\x09double dx = first.x - second.x ;
\x09\x09double dy = first.y - second.y ;
\x09\x09return abs(dx) * 2.0 + abs(dy) * 2.0 ;
\x09}
\x09double area() {
\x09\x09double dx = first.x - second.x ;
\x09\x09double dy = first.y - second.y ;
\x09\x09return abs(dx) * abs(dy) ;
\x09}
} ;
int main() {
return 0 ;
}
看了 初学)C++题目:把定义平面...的网友还看了以下:
在如图所示的平面直角坐标系中,一只蚂蚁从A点出发,沿着A→B→C→D→A…循环爬行,其中A点坐标为 2020-04-07 …
已知直角坐标系平面上的等腰三角形ABC,其中两个顶点的坐标为A(5,3)B(1,0),第三个顶点C 2020-05-16 …
如图,已知直角坐标平面上的等腰三角形ABC,其中两个顶点的做坐标分别为A(5,3),B(1,0), 2020-05-16 …
( )等因素是影响人生价值实现的主要条件。 A.社会思想文化条件B.个人经济条件C.个人的知 2020-05-20 …
如图,在平面直角坐标系中,长方形ABCD的边BC∥x轴.如果A点坐标是(−1,22),C点坐标是( 2020-06-14 …
在同一平面内,知道a和b的坐标,怎么算c和d的坐标啊?a的坐标是21664000,5072445. 2020-06-14 …
下列句子在修辞方法的运用上与其他三句不同的一句是A.老张的文章写得很漂亮,是本单位出名的笔杆子.B 2020-06-26 …
5.下列句子在修辞方法的运用上与其他三句不同的一句是()A.老张的文章写得很漂亮,是本单位出名的笔 2020-06-26 …
已知::有四个人A,B,C,D各自带一顶帽子,其中有2个红色,2个黄色现在有一堵墙,A坐在墙的左面 2020-06-26 …
[数学高手来]已知抛物线y=-3/4x^2+bx+c与坐标轴交于A,B,C三点,已知抛物线y=-3 2020-06-27 …