学了几天c语言的类了,今天做了一道练习题,数不出正确结果,请高手帮我解决一下

#include<iostream.h>#include<math.h>#definePI3.14classcpoint{public:doublex,y;cpoint(... #include<iostream.h>
#include<math.h>
#define PI 3.14
class cpoint
{
public:
double x,y;
cpoint(double a,double b)
{
x=a;
y=b;
cout<<"object of cpoint is created"<<endl;
}
void setpoint(double x,double y)
{
this->x=x;
this->y=y;
}
~cpoint()
{
cout<<"object of cpoint is destroy"<<endl;
}
private:
};
class cline:public cpoint
{
public:
cline()
{
cout<<"object of cline is created"<<endl;
}
~cline()
{
cout<<"object of cline is destroy"<<endl;
}
void setline(cpoint &pt1,cpoint &pt2)
{
x1=pt1.x;y1=pt1.y;
x2=pt2.x;y2=pt2.y;
}
double x1,x2,y1,y2;
double callength();
};
class ccircle:public cline
{
public:
double r;
ccircle()
{
cout<<"object of ccircle is created"<<endl;
}
~ccircle()
{
cout<<"object of ccircle is destroy"<<endl;
}
void setr(cline &line)
{
r=line.callength();
}
double calarea();
};
double cline::callength()
{
double result=(double)sqrt(fabs((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)));
return result;
}
double ccircle::calarea()
{
double result=(double)(PI*r*r);
return result;
}
void main()
{
cpoint my(10,11);
}
展开
 我来答
明渊阁
2012-11-17 · TA获得超过450个赞
知道小有建树答主
回答量:300
采纳率:0%
帮助的人:261万
展开全部
错误在于多层派生时,子类的构造函数需要包括父类构造函数的函数参数,而楼主并没有定义。
构造函数cline()改为 cline(double a,double b):cpoint(a,b)

构造函数ccircle()改为 ccircle(double a,double b):cline(a,b)
就可以了。
楼主有问题再问哦。
帐号已注销
2012-11-17 · TA获得超过3956个赞
知道大有可为答主
回答量:1636
采纳率:77%
帮助的人:1361万
展开全部
我粗略的看了一下,首先的你的代码是“原始版的C++”,不是C语言。
其次,你的基类cpoint有一个构造函数cpoint(double a,double b),任何一个从此类继承的派生类都必须显示调用此函数。
如:cline类的构造函数这样写:
cline::cline() : cpoint(12, 45) {}

这是很典型的错误。。。。。。。。。

有问题Hi我

不知楼主用的是什么教材?
追问
我在图书馆借的书,没看什么版本,麻烦帮我把正确的程序写出来行么
追答
通过私信给你发过去了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
敏捷的屠扒枚CPf95
2012-11-17
知道答主
回答量:5
采纳率:0%
帮助的人:3.5万
展开全部
。。。
首先,这是c++
其次,主函数只是将my初始化,成员函数一个没调用,只能输出object of cpoint is created
最后,析构函数里应该是object of cpoint is destroyed,被动语态。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友559a1d8
2012-11-17 · TA获得超过137个赞
知道小有建树答主
回答量:151
采纳率:0%
帮助的人:95.7万
展开全部
ooooooo
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式