我有以下代码:对象到功能
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
是一个抽象类。我不明白UnionRegion
的ctor如何接收Region
类型的对象,因为我们如何创建一个抽象类的对象?
又是什么点举办shared_ptr
到Region
?我明白,因为Region
是抽象的,我们需要一个指针,但Region
甚至没有私人成员,所以基本上我无法对该指针做任何事情。
谢谢!
但它需要一个**引用... **没有创建实际的实例,没有执行复制。该函数只需要传递任何具体的对象。 – 2013-07-28 07:23:48
对象的引用不是一个对象。我一直认为引用只是荣耀的指针。 –
@j_kubik这是错误的,引用不是指针,而引用**是**对象。 (它*完全*,它不是**拷贝**,而是对象本身。) – 2013-07-28 07:27:58