大足海棠小学招生电话:请教C++高手

来源:百度文库 编辑:中科新闻网 时间:2024/05/02 12:42:10
#include<iostream.h>
class Shape
{public:
Shape(double=0.0,double=0.0);
virtual void setpoint()=0;
protected:
double x,y;
};
Shape::Shape(double a,double b)
{x=a;
y=b;}

class TwoDimShape:public Shape
{public:
TwoDimShape(double=0.0,double=0.0);
void setpoint()
{cout<<"the point of the center is : "<<'('<<x<<","<<y<<')'<<endl;}
virtual void setSide()=0;
};
TwoDimShape::TwoDimShape(double a,double b):Shape(a,b){}

class Circle:public TwoDimShape
{public:
Circle(double=0,double=0.0,double=0.0);
void setSide(double);
void putSide(){cout<<"the Radius of the circle is :"<<Radius<<endl;}
protected:
double Radius;
};
Circle::Circle(double r,double a,double b):TwoDimShape(a,b)
{setSide(r);}
void Circle::setSide(double r)
{Radius=r;
}
void main()
{Circle c(1.5,2.1,1.1);
c.setpoint();
c.putSide();}
这程序错在哪,能帮我解决的我加五十分
我说的话当然算数,不过你的回答不太正确,它的要求是TwoDimShape类为抽象类,然后再派生出Circle.刚才已经有人给我解答了,不过还是谢谢你

以下程序我在vc++6.0中运行通过
你说的话算数吗?

#include<iostream.h>

class Shape
{
public:
Shape(double=0.0,double=0.0);
virtual void setpoint()=0;
protected:
double x,y;
};

Shape::Shape(double a,double b)
{
x=a;
y=b;
}

class TwoDimShape:public Shape
{
public:

TwoDimShape(double=0.0,double=0.0);
void setpoint()
{
cout<<"the point of the center is : "<<"("<<x<<","<<y<<")"<<endl;
}
// virtual void setSide()=0;这地方不能再次用纯虚函数
};

TwoDimShape::TwoDimShape(double a,double b):Shape(a,b){}

class Circle:public TwoDimShape
{
public:
Circle(double=0,double=0.0,double=0.0);
void setSide(double);
void putSide(){cout<<"the Radius of the circle is :"<<Radius<<endl;}
protected:
double Radius;
};

Circle::Circle(double r,double a,double b):TwoDimShape(a,b)
{
setSide(r);
}

void Circle::setSide(double r)
{
Radius=r;
}

void main()
{
Circle c(1.5,2.1,1.1);
c.setpoint();
c.putSide();
}