这个function不太对吧,右边都是这个是函数调用,不是定义呢
class B
{
protected:
~B() { }
public:
void destroy()
{
delete this ;//调用保护析构函数
}
};
但是,用new创建的一个对象,但不使用delete释放,而是用destory释放,不符合用户习惯,所以将构造函数也设置为私有或保护,让类提供一个静态成员函数专门用于生产该类型的堆对象。
即使用静态成员函数创建对象和销毁,将构造函数和析构函数声明为protected。(设计模式中的单例模式就是这么实现的)
class B{
protected:
B(){}
~B(){}
public:
static B* create(){
return new A();
}
static void destory(B* p){
delete p;
p = NULL;
}
};
由于提供的参考资料与问题并不相关,无法给出具体的解决方案。请提供更多相关信息或代码,以便可以更好地帮助解决问题。