已经不能从外部调用构造函数了,但是对象必须被构造,应该如何解决,麻烦大家帮忙说明,关于构造,析构函数声明为私有和保护时的用法???
提出这个问题,说明你已经对c++有所思考了。 从语法上来讲,一个函数被声明为protected或者private,那么这个函数就不能从“外部”直接被调用了。 对于protected的函数,子类的“内部”的其他函数可以调用之。 而对于private的函数,只能被本类“内部”的其他函数说调用。 语法上就是这么规定的,你肯定也知道的咯。 那么为什么有时候将构造函数或者析构函数声明为protected的或者private的? 通常使用的场景如下: 1。如果你不想让外面的用户直接构造一个类(假设这个类的名字为A)的对象,而希望用户只能构造这个类A的子类,那你就可以将类A的构造函数/析构函数声明为protected,而将类A的子类的构造函数/析构函数声明为public。例如: