
学了几天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);
} 展开
#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);
} 展开
4个回答
展开全部
错误在于多层派生时,子类的构造函数需要包括父类构造函数的函数参数,而楼主并没有定义。
构造函数cline()改为 cline(double a,double b):cpoint(a,b)
构造函数ccircle()改为 ccircle(double a,double b):cline(a,b)
就可以了。
楼主有问题再问哦。
构造函数cline()改为 cline(double a,double b):cpoint(a,b)
构造函数ccircle()改为 ccircle(double a,double b):cline(a,b)
就可以了。
楼主有问题再问哦。
展开全部
我粗略的看了一下,首先的你的代码是“原始版的C++”,不是C语言。
其次,你的基类cpoint有一个构造函数cpoint(double a,double b),任何一个从此类继承的派生类都必须显示调用此函数。
如:cline类的构造函数这样写:
cline::cline() : cpoint(12, 45) {}
这是很典型的错误。。。。。。。。。
有问题Hi我
不知楼主用的是什么教材?
其次,你的基类cpoint有一个构造函数cpoint(double a,double b),任何一个从此类继承的派生类都必须显示调用此函数。
如:cline类的构造函数这样写:
cline::cline() : cpoint(12, 45) {}
这是很典型的错误。。。。。。。。。
有问题Hi我
不知楼主用的是什么教材?
追问
我在图书馆借的书,没看什么版本,麻烦帮我把正确的程序写出来行么
追答
通过私信给你发过去了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
。。。
首先,这是c++
其次,主函数只是将my初始化,成员函数一个没调用,只能输出object of cpoint is created
最后,析构函数里应该是object of cpoint is destroyed,被动语态。。。。
首先,这是c++
其次,主函数只是将my初始化,成员函数一个没调用,只能输出object of cpoint is created
最后,析构函数里应该是object of cpoint is destroyed,被动语态。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ooooooo
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询