早教吧作业答案频道 -->其他-->
初学)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++题目:把定义平面...的网友还看了以下:
关于易燃液体分为甲类、乙类、丙类分类界限的问题?易燃液体是闪点≤45℃的液体,为什么其下分类的甲类 2020-04-13 …
已知点P是抛物线y=x*2-4x+4上的一个动点,圆P的半径为1,当圆P与坐标轴相切时,求点P的坐 2020-05-16 …
girlmoredooralwayslearningworkingtalkingbirthday按 2020-06-07 …
连线题,油脂类奶类和奶制品给我们提供能量豆类和豆制品支持我们的生长发育鱼虾类、蛋类使我们保持健康谷 2020-06-17 …
在极坐标系中有如下三个结论,正确的是()①点P在曲线C上,则点P的极坐标一定满足曲线C的极坐标方程 2020-06-27 …
小明3月份从上海浦东坐飞机直飞英国伦敦,在飞行了12个小时之后,到达伦敦。三天后,小明坐同一架从伦 2020-06-29 …
JAVA上机测试题一.继承(50分)1、编写一个交通工具类Vehicle类,创建一个run方法,从 2020-07-17 …
下列说法中错误的是()A.人类和类人猿的共同祖先是森林古猿B.森林古猿一部分进化成了人类C.古人类 2020-07-24 …
类文阅读我的母亲我六岁的时候,由父亲自己为我“发蒙”,读的是《三字经》。第一天上的可是“人之初,性 2020-07-29 …
在直角坐标系xOy中,曲线c1的参数方程为:(θ为参数),把曲线c1上所有点的纵坐标压缩为原来的一 2020-07-31 …