可以说我有课
template<typename PointT>
class Parent {
public:
typedef boost::shared_ptr<Parent<PointT> > Ptr;
inline Ptr
makeShared ()
{
return Ptr (new Parent<PointT> (*this));
}
};
template<typename PointT>
class Child : public Parent {
public:
typedef boost::shared_ptr<Child<PointT> > Ptr;
};
现在我想将 Ptr 和 makeShared() 的定义重写为通用的,以便从子类实例调用 makeShared() 将产生指向子类而不是父类的指针
为了更清楚,在任何继承 Parent 的类上调用 makeShared() 都会给出一个指向该继承类实例的指针。并在父类上调用 make shared() 会给出一个指向父类实例的指针有什么想法吗?