这个程序有错误,求指导。。。谢谢各位
#include<iostream>
using namespace std;
class Column{
friend void print(Column &C);
friend void setData(Column &,double,double,double,double);
public:
Column(double x,double y,double r,double h);
~Column();
double area();
double volumn();//体积
private:
double height;
double radius;
double x;
double y;
};
Column::Column(double x,double y,double r,double h)
{
// x=y=r=h=0;
height=h;
radius=r;
}
void setData(Column &C,double x,double y,double r,double h)
{
C.x=x;
C.y=y;
C.height=h;
C.radius=r;
}
double Column::area()
{
double area;
double const PI=3.1415926;
area=2*PI*C.radius*C.height+2*PI*C.radius*C.radius;
return area;
}
double Column::volumn()
{
double const PI=3.1415926;
return(C.radius*C.radius*PI*C.height);
}
void print(Column &C)
{
char key;
double x,y,r,h;
cout<<"x: ";
cin>>x;
cout<<endl<<"y: ";
cin>>y;
cout<<endl<<"h: ";
cin>>h;
cout<<endl<<"r: ";
cin>>r;
setData(Column &C,x,y,r,h);
cout<<endl<<endl
<<"1.area"<<endl
<<"2.vlumn"<<endl;
cin >>key;
if(key=='1')
{
double area;
area=C.area();
cout<<area<<endl;
}
else
{
if(key=='2')
{
double v;
v=C.volumn();
cout<<v<<endl;
}
else
{
cout<<"输入错误"<<endl;
C.height();
}
}
}
void main()
{
Column C;
C.print;
}
[解决办法]
#include <iostream>using namespace std;#include<iostream>using namespace std;class Column{ friend void print(Column &C); friend void setData(Column &,double,double,double,double);public: Column(double x,double y,double r,double h); ~Column(); double area(); double volumn();//体积private: double height; double radius; double x; double y;};Column::Column(double x,double y,double r,double h){ // x=y=r=h=0; height=h; radius=r;}Column::~Column(){}void setData(Column &C,double x,double y,double r,double h){ C.x=x; C.y=y; C.height=h; C.radius=r;}double Column::area(){ double area; double const PI=3.1415926; area=2*PI*radius*height+2*PI*radius*radius; return area;}double Column::volumn(){ double const PI=3.1415926; return(radius*radius*PI*height);}void print(Column &C){ char key; double x,y,r,h; cout<<"x: "; cin>>x; cout<<endl<<"y: "; cin>>y; cout<<endl<<"h: "; cin>>h; cout<<endl<<"r: "; cin>>r; setData(C,x,y,r,h); cout<<endl<<endl <<"1.area"<<endl <<"2.vlumn"<<endl; cin >>key; if(key=='1') { double area; area=C.area(); cout<<area<<endl; } else { if(key=='2') { double v; v=C.volumn(); cout<<v<<endl; } else { cout<<"输入错误"<<endl; // C.height(); } }}void main(){ Column C(2.0, 2.0, 2.0, 2.0); print(C);}