注册 登录
编程论坛 C++教室

没有合适构造函数问题

jioper 发布于 2017-06-08 11:27, 1754 次点击
struct Shape
{
    virtual double area()=0;
    virtual double tiji()=0;
    virtual double dimianji()=0;
    virtual double dimianzhouchang()=0;//虚函数,写好面积,底面积,底面周长,体积的纯虚函数
};
class Rectangle:public Shape//矩形
{
public:
    Rectangle(double c,double k)//构造函数
    {
        chang=c;
        kuan=k;
    }
        virtual double area()//改写面积
    {
        return chang*kuan;
    }
        virtual double tiji()//体积,底面积,底面周长没有,返回0
    {
        return 0;
    }
    virtual double dimianzhouchang()
    {
        return 0;
    }
    virtual double dimianji()
    {
        return 0;
    }
    double chang,kuan;
};
class Box:public Rectangle//长方体
{
public:
    Box(double g)//构造函数//“Rectangle”: 没有合适的默认构造函数可用为什么?我RECTANGLE有构造函数的呀
    {
        gao=g;
    }
    virtual double area()//面积没有,返回0
    {
        return 0;
    }
    virtual double tiji()//体积,底面积,底面周长改写
    {
        return chang*kuan*gao;
    }
    virtual double dimianji()
    {
        return chang*kuan;
    }
    virtual double dimianzhouchang()
    {
        return 2*(chang+kuan);
    }
private:
    double gao;
};
1 回复
#2
rjsp2017-06-08 11:59
随便举个例子
Box a( 12 );
此时,a.chang 和 a.kuan 等于多少?
1