-1

クラス 2 変数の 1 つから継承しようとしていますが、他のクラスの関数の 1 つの値を返すことができるようにするためには、これらの変数が等しくなければなりません。

class Rectangle: public Shape{

    double Length;
    double Width;

    public:
        Rectangle(double Length, double Width):
            Shape("Rectangle")
        {
            this->Length=Length;
            this->Width=Width;
        }

        double getPerimerter(){
            return 2 * (Length+Width);
        }

        double getArea(){
            return Length * Width;
        }
};

class Square: public Shape, public Rectangle{

    double Side;

    public:
    Square():
        Shape("Square"),
        Rectangle(Length,Width)
    {}

    double getPerimerter(){
        if(Length==Width)
        return 4 * (Length+Width);
    }

    double getArea(){
        if(Length==Width)
        return (Length+Width) * (Length+Width);
    }

};

ご覧のとおり、Length と Width という名前のプライベート変数を保持する Rectangle という具体的なクラス呼び出しが既にあります。私がしようとしているのは、このクラスをクラス Square に継承することです。Length と Width が等しい場合は、正方形の面積と周長を返します..

4

3 に答える 3

2

最初に、次のように Square コンストラクターに引数を追加する必要があります。

Square(double Side):Rectangle(Side,Side){
    // Add additional constructor code here if required
}

コンストラクターで値を返すことについて-コンストラクターは何も返さない可能性があるため、これは禁止です。

あなたの質問は私には理解するのが非常に難しかったので、これがあなたの意図したものであることを願っています.

于 2013-08-05T23:29:36.110 に答える