【发布时间】:2013-01-06 16:25:24
【问题描述】:
我正在研究“设计模式解释”中的桥接模式示例。 我正在查看的示例是示例 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);
};
在我们的 Circle 类中
#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 在继承类中可以是纯虚拟的?
【问题讨论】:
-
那么,为什么不应该它可以是虚拟的?
-
你应该改写你的标题以匹配你的实际问题;这与桥接模式无关..
-
stijn - 好点我也许应该包含所有代码。但是这个例子是为了实现桥接模式,作者使用桥接模式将抽象(形状类)与调用drawCircle提供“桥接”的实现(绘图类)分离。
标签: c++ oop design-patterns bridge