class One
{
public:
One(){
cout<<"constructor\n";
}
private:
~One(){
cout<<"destructor\n";
}
friend void Destroy(One *one);
};
void Destroy(One *one)
{
if(one != nullptr){
delete one
}
}
int main()
{
One one // 这样是不行的,不能访问析构函数
One *one //ok
One *one = new One() //ok
return 0;
}
析构函数一般不设置成私有。如果析构函数设置成私有,不能在栈上创建对象。可以动态创建对象。可以使用友元函数来显示销毁动态创建的对象