如何实例化派生类对象,其基类ctor是私有的?
由于派生类 ctor 隐式调用基类 ctor(它是私有的),因此编译器会出错。
考虑下面的示例代码:
#include <iostream>
using namespace std;
class base
{
private:
base()
{
cout << "base: ctor()\n";
}
};
class derived: public base
{
public:
derived()
{
cout << "derived: ctor()\n";
}
};
int main()
{
derived d;
}
此代码给出了编译错误:
access_private_ctor_in_base_class.cpp:在构造函数
derived::derived()': accessing_private_ctor_in_base_class.cpp:9: error:
中 base::base()' 是私有的 access_private_ctor_in_base_class.cpp:18:错误:在此上下文中
如何修改代码以消除编译错误?