*********在线等 ,这个程序错到那了啊,怎么编译不出来啊
#include <iostream.h>
class shape
{private:
double x;
double y;
double z;
public:
shape(double a,double b,double c)
{x=a;
y=b;
z=c;
virtual void area()=0;
};
class circle:public shape
{public:
circle (double a):shape(a,a,a)
{}
void area()
{cout < < "球的体积 " < <3/4*3.14*a*a*a < <endl;};
class triangle: public shape
{public:
triangle(double a,double b):shape(a,b)
{}
void area()
{cout < < "圆柱体的体积 " < <3.14*a*a*b < <endl;};
class square:public shape
{public:
square (double a):shape(a)
{}
void area()
{cout < < "正方体的体积 " < <a*a*a < <endl;};
class chf:public shape
{public:
chf (double a,double b,double c):shape(a,b,c)
{}
void area()
{cout < < "长方体的体积 " < <a*b*c < <endl;};
void main()
{shape *p;
circle c(3);
triangle t(4,6);
square s(9);
chf r(4,5,4);
p=&c;
p-> area();
p=&t;
p-> area();
p=&s;
p-> area();
p=&r;
p-> area();
}
[解决办法]
哦。错的实在有点多。
#include <iostream>
using namespace std;
class shape {
protected:
double x_;
double y_;
double z_;
public:
shape(double a,
double b,
double c)
: x_(a),
y_(b),
z_(c) { }
virtual void area()=0;
};
class circle:public shape
{
public:
circle(double a)
:shape(a, a, a) { }
virtual void area() {
cout < < "球的体积 " < <3/4*3.14*x_*y_*z_ < <endl;
}
};
class triangle: public shape
{
public:
triangle(double a, double b)
: shape(a, a, b /*原,少一个实参*/) // ???
{ }
virtual void area() {
cout < < "圆柱体的体积 " < <3.14*x_*y_*z_ < <endl;
}
};
class square:public shape
{
public:
square (double a) : shape(a, a, a) // 不对吧,base class 要求3个参数啊
{ }
virtual void area() {
cout < < "正方体的体积 " < <x_*y_*z_ < <endl;
}
}; // 汗,怎么总缺这个括号和;
class chf : public shape
{
public:
chf (double a,double b,double c):shape(a,b,c)
{}
virtual void area()
{cout < < "长方体的体积 " < <x_*y_*z_ < <endl;}
};
void main() {
shape *p;
circle c(3);
triangle t(4,6);
square s(9);
chf r(4,5,4);
p=&c;
p-> area();
p=&t;
p-> area();
p=&s;
p-> area();
p=&r;
p-> area();
}