比方说,我有类
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()的定义是通用的,这样从子类(ES)的实例调用makeShared()会产生一个指向子类而不是父
为了更清楚调用任何类继承父makeShared()会给一个指向继承类的一个实例。 和呼叫拨打共享()在父类将使一个指向父类中的任何想法的一个实例?