第三个无法输出正确答案是为什么呀
#include
#include
using namespace std;
class Point_1D
{ protected:
float x;//1D 点的x坐标
public:
Point_1D(int x):x(x){
}
Point_1D(float p = 0.0)
{x=p;}
void distance( )
{
cout<<"Distance from Point"<" "<<"to original point is"<<" "<<sqrt(x*x)<class Point_2D:public Point_1D
{ protected:
float y;//1D 点的x坐标
public:
Point_2D(int x,int y): Point_1D(x),y(y){
}
void distance( )
{
cout<<"Distance from Point"<<"("<","<")"<<" "<<"to original point is"<<" "<<sqrt(x*x+y*y)<class Point_3D:public Point_2D
{ protected:
float z;//1D 点的x坐标
public:
Point_3D(int x,int y,int z):Point_2D(x,y){z=z;}
void distance( )
{
cout<<"Distance from Point"<<"("<","<","<")"<<" "<<"to original point is"<<" "<<sqrt(x*x+y*y+z*z)<int main()
{ int x,y,z,n;
while(1)
{
cin>>n;
if(n==0)
break;
if(n==1)
{ cin>>x;
Point_1D d1(x);
d1.distance();
}
else if(n==2)
{ cin>>x>>y;
Point_2D d2(x,y);
d2.distance();
}
else
{
cin>>x>>y>>z;
Point_3D d3(x,y,z);
d3.distance();
}
}
return 0;
}

Point_3D(int x, int y, int z) : Point_2D(x, y), z(z) {
}