c++小程序,乱码问题,大家来看看啊

#include
//#include

class Container
{
public:
int x;
int y;
int z;

Container(int ,int ,int );

virtual void area()                          //虚函数
{
    std::cout<<"面积基类虚函数"<<std::endl;
}
virtual void volume()
{
    std::cout<<"体积基类虚函数"<<std::endl;
}

};

Container::Container(int a,int b,int c):x(a),y(b),z(c){};

//基类

class Sphere : public Container
{
public:
Sphere(int ) : Container(x,y,z){}; //派生构造函数

void area()
{
    std::cout<<"球的半径是"<<x<<std::endl;
    std::cout<<"面积为"<<4*3.14*x*x<<std::endl;
}

void volume()
{
    std::cout<<"球的半径是"<<x<<std::endl;
    std::cout<<"体积为"<<3.14*x*x*x<<std::endl;
}

};

int main()
{
Sphere sphere(2);
sphere.area();
sphere.volume();
return 0;
}

Sphere(int ) :Container(x,y,z){};改成Sphere(int a) :Container(a,y,z){};

 #include<iostream>
//#include<string>

class Container
{
public:
    int x;
    int y;
    int z;

    Container(int ,int ,int );

    virtual void area()                          //虚函数
    {
        std::cout<<"面积基类虚函数"<<std::endl;
    }
    virtual void volume()
    {
        std::cout<<"体积基类虚函数"<<std::endl;
    }
};

Container::Container(int a,int b,int c):x(a),y(b),z(c){};

//基类

class Sphere : public Container
{
public:
    Sphere(int a) :Container(a,y,z){};       //派生构造函数

    void area()
    {
        std::cout<<"球的半径是"<<x<<std::endl;
        std::cout<<"面积为"<<4*3.14*x*x<<std::endl;
    }

    void volume()
    {
        std::cout<<"球的半径是"<<x<<std::endl;
        std::cout<<"体积为"<<3.14*x*x*x<<std::endl;
    }
};

int main()
{
    Sphere sphere(2);
    sphere.area();
    sphere.volume();
    return 0;
}

图片说明

http://codepad.org/6l1ROKyH

球的半径是134539488
面积为2.27347e+17
球的半径是134539488
体积为7.64679e+24

乱码应该是你文本编辑器的编码设置问题吧。

我这里编译运行正常。参考如上网站。

我想知道你子类构造函数的2传给了谁?

Sphere(int ) : Container(x,y,z){}; //派生构造函数
上面这个构造函数有问题。你要确定一个参数例如:
Sphere(int a) : Container(a,a,a){}; //派生构造函数
这样才能达到效果。