我有以下代码:
class Region {
public:
virtual Region* clone() const = 0;
virtual ~Region() {}
bool contains(double x, double y) const = 0;
}
class UnionRegion : public Region {
shared_ptr<Region> r1;
shared_ptr<Region> r2;
public:
UnionRegion(const Region& r1, const Region& r2) :
r1(r1.clone()), r2(r2.clone()) {}
.
.
.
}
Region
是一个抽象类。我不明白 ctor 是UnionRegion
如何接收类型对象的Region
,因为我们如何创建抽象类的对象?
持有 a shared_ptr
to又有什么意义Region
呢?我知道因为Region
是抽象的,我们需要一个指针,但Region
甚至没有私有成员,所以基本上我不能用那个指针做任何事情。
谢谢!