早教吧作业答案频道 -->其他-->
初学)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++题目:把定义平面...的网友还看了以下:
平行四边形ABCD的一组对角∠A和∠C的角平分线分别交CD于E,交AB于F,求证:AE=CF,AF平 2020-03-30 …
将两块全等的含30°角的直角三角板按图1的方式放置,已知∠BAC=∠B1A1C1=30°,固定三角 2020-04-06 …
如图,在平面直角坐标系中,其中一个三角形是由另一个三角形绕着某点旋转一定的角度得到的,则其旋转中心 2020-04-06 …
平行四边形ABCD的一组对角∠A和∠C的角平分线分别交CD于E,交AB于F,求证:AE=CF,AF 2020-04-26 …
图中A点位于B点的()A.东南方向B.西南方向C.东北方向D.西北方向图中A点位于B点的()A.东 2020-05-13 …
直线y=2x是三角形ABC中角C的角平分线所在直线,A,B坐标为(-4,2),(3,1)求点C坐标 2020-05-13 …
已知三角形ABC 顶点A(3,4)内角B C 的角平分线的直线方程分别为x-y-1=0,x+y-4 2020-05-13 …
在三角形abc角中,角a=2角b,角b=角c.角a、b、c,的角度数分别是多少?请列式计算,不能用 2020-05-14 …
COMEON!三角形ABC的角B和角C的角平分线BE‘CD交于I若角A为60度,BC,CE,BD有 2020-05-17 …
已知,如图,AD、A'D'分别为△ABC和△A'B'C'的角平分线.且AD=A'D',∠B=∠B' 2020-05-23 …