
C++问题,编译如下,但一直有问题,要求是建立图形类并派生出圆类和矩形类,而后由圆类派生出圆柱类,
#definePI3.1415926#include<iostream.h>classShape{public:doubleGetArea();private:intli...
#define PI 3.1415926
#include<iostream.h>
class Shape
{
public:
double GetArea();
private:
int line;
};
//////////////////////
class Rectangle:public Shape
{
public:
Rectangle(double aa,double bb)
{a=aa;b=bb;cout<<"长"<<a<<"宽"<<b<<endl;
}
double GetArea()
{double m=a*b;
cout<<"矩形面积为"<<m<<endl;
}
private:
double a;double b;
};
class Circle:public Shape
{
public:
void Ciecle(double rr)
{
r=rr;
cout<<"半径"<<r<<endl;
}
virtual double GetArea()
{
double a=PI*r*r;
cout<<"圆的面积为"<<a<<endl;
}
private:
double r;
};
//////////////////////////////////
class Column:public Circle
{
public:
Column(double Crr,double Chh)
{
Cr=Crr,Ch=Chh;
}
double Area()
{
double f=PI*Cr*Cr*Ch;
cout<<"体积为"<<f<<endl;
}
private:
double Cr,Ch;
};
/////////////////////
void main()
{
Shape *pt;
Circle p1(2);
pt=&p1;
pt->GetArea();
Rectangle p2(2,8);
pt=&p2;
pt->GetArea();
Column p3(2,4);
pt=&p3;
p3->GetArea();
} 展开
#include<iostream.h>
class Shape
{
public:
double GetArea();
private:
int line;
};
//////////////////////
class Rectangle:public Shape
{
public:
Rectangle(double aa,double bb)
{a=aa;b=bb;cout<<"长"<<a<<"宽"<<b<<endl;
}
double GetArea()
{double m=a*b;
cout<<"矩形面积为"<<m<<endl;
}
private:
double a;double b;
};
class Circle:public Shape
{
public:
void Ciecle(double rr)
{
r=rr;
cout<<"半径"<<r<<endl;
}
virtual double GetArea()
{
double a=PI*r*r;
cout<<"圆的面积为"<<a<<endl;
}
private:
double r;
};
//////////////////////////////////
class Column:public Circle
{
public:
Column(double Crr,double Chh)
{
Cr=Crr,Ch=Chh;
}
double Area()
{
double f=PI*Cr*Cr*Ch;
cout<<"体积为"<<f<<endl;
}
private:
double Cr,Ch;
};
/////////////////////
void main()
{
Shape *pt;
Circle p1(2);
pt=&p1;
pt->GetArea();
Rectangle p2(2,8);
pt=&p2;
pt->GetArea();
Column p3(2,4);
pt=&p3;
p3->GetArea();
} 展开
1个回答
展开全部
我想问问你到底会不会哦,我被你写的程序头都搞晕了,不过最后还是弄出来了
#define PI 3.1415926
#include<iostream.h>
class Shape
{
public:
Shape(){}
virtual void GetArea()=0;
private:
double line;
};
//////////////////////
class Rectangle:public Shape
{
public:
Rectangle(double aa,double bb)
{
a=aa;
b=bb;
cout<<"长"<<a<<"宽"<<b<<endl;
}
void GetArea()
{
double m=a*b;
cout<<"矩形面积为:"<<m<<endl;
}
private:
double a;
double b;
};
class Circle:public Shape
{
public:
Circle(){}
Circle(double rr)
{
r=rr;
cout<<"半径"<<r<<endl;
}
void GetArea()
{
double a=PI*r*r;
cout<<"圆的面积为"<<a<<endl;
}
private:
double r;
};
//////////////////////////////////
class Column:public Circle
{
public:
Column(double Crr,double Chh)
{
Cr=Crr,Ch=Chh;
}
void GetArea()
{
double f=PI*Cr*Cr*Ch;
cout<<"圆柱体体积为"<<f<<endl;
}
private:
double Cr,Ch;
};
/////////////////////
void main()
{
Shape *pt;
Circle p1(2);
pt=&p1;
pt->GetArea();
Rectangle p2(2,8);
pt=&p2;
pt->GetArea();
Column p3(2,4);
pt=&p3;
p3.GetArea();
}
#define PI 3.1415926
#include<iostream.h>
class Shape
{
public:
Shape(){}
virtual void GetArea()=0;
private:
double line;
};
//////////////////////
class Rectangle:public Shape
{
public:
Rectangle(double aa,double bb)
{
a=aa;
b=bb;
cout<<"长"<<a<<"宽"<<b<<endl;
}
void GetArea()
{
double m=a*b;
cout<<"矩形面积为:"<<m<<endl;
}
private:
double a;
double b;
};
class Circle:public Shape
{
public:
Circle(){}
Circle(double rr)
{
r=rr;
cout<<"半径"<<r<<endl;
}
void GetArea()
{
double a=PI*r*r;
cout<<"圆的面积为"<<a<<endl;
}
private:
double r;
};
//////////////////////////////////
class Column:public Circle
{
public:
Column(double Crr,double Chh)
{
Cr=Crr,Ch=Chh;
}
void GetArea()
{
double f=PI*Cr*Cr*Ch;
cout<<"圆柱体体积为"<<f<<endl;
}
private:
double Cr,Ch;
};
/////////////////////
void main()
{
Shape *pt;
Circle p1(2);
pt=&p1;
pt->GetArea();
Rectangle p2(2,8);
pt=&p2;
pt->GetArea();
Column p3(2,4);
pt=&p3;
p3.GetArea();
}
追问
圆怎么没继承呢
追答
再看看还有那里不足之处
/****************************************
圆类,圆柱体类,矩形类
*****************************************/
#define PI 3.1415926
#include
class Shape
{
public:
Shape(){}
virtual void GetArea()=0;
private:
double line;
};
//////////////////////
class Rectangle:public Shape
{
public:
Rectangle(double aa,double bb)
{
a=aa;
b=bb;
coutGetArea();
Rectangle p2(2,8);
pt=&p2;
pt->GetArea();
Column p3(2,4);
pt=&p3;
p3.GetArea();
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询