1.析构函数可以是私有的吗?
答:可以是私有的
2.析构函数私有化的作用?
答:1)禁止用户对此类的变量进行定义;
2)禁止用户在程序中使用delete删除此类型对象;
3)保证只能在堆上new一个新的类对象
即:控制变量的生命周期
当在栈上生成对象时,对象会自动析构,也就说析构函数必须可以访问。而堆上生成对象,由于析构时机由程序员控制,所以不一定需要析构函数。当然外部调用delete自然也无法通过编译,销毁对象对象的方式是在某个方法或友元内部调用delete this。这么做的目的通常是不希望用户控制对象生存周期。