template<class T> struct checked_deleter
{
typedef void result_type;
typedef T * argument_type;
void operator()(T * x) const//重载括号函数,参数类型是T*
{
resip::checked_delete(x);
}
};
class MasterProfile
{
};
template<class T> class SharedPtr
{
template<class Y> //模板特定格式
explicit SharedPtr(Y * p): px(p), pn(p, checked_deleter<Y>())
{
sp_enable_shared_from_this( pn, p, p );
}
}
void main()
{
SharedPtr<MasterProfile> profile(new MasterProfile);
}
------------------------------------
"new MasterProfile" 返回 MasterProfile*