1

「DesignedPatternsExplained」のブリッジパターンの例を勉強しています。私が見ている例は例10.3で、これは次の場所にあります。

http://www.netobjectives.com/resources/books/design-patterns-explained/cpp-code-examples/chapter10#10-3

私が持っている特定の混乱は、Shapeクラスとその派生クラスにあります。

#pragma once
#include "Drawing.h"

class Shape
{
public:
    Shape(Drawing *aDrawing);
    virtual void draw()= 0;

protected:
    Drawing *myDrawing;
    void drawLine( double, double, double, double);
    void drawCircle( double, double, double);

public:
    ~Shape(void);
};

サークルクラスでは

#pragma once
#include "Shape.h"

class Circle : public Shape
{
public:
    Circle(Drawing*, double, double, double);
    virtual void draw();
    virtual void drawCircle(double, double, double)=0;

public:
    ~Circle(void);
protected:
    double _x, _y, _r;
};

だから私が持っている質問はdrawCircle、メソッドが実際に基本クラスに実装されているのに、なぜ継承されたクラスで純粋な仮想になる ことができるのかということです。

4

2 に答える 2

1

純粋仮想メソッドは、そのクラスのインスタンスを作成しようとしない限り、どのクラスでも許可されます。

于 2013-01-23T08:48:43.593 に答える