基本クラスctorがプライベートである派生クラスオブジェクトをインスタンス化する方法はありますか?基本クラスctorがプライベートである派生クラスオブジェクトをインスタンス化します。
派生クラスctorは暗黙的に(プライベートである)基本クラスctorを呼び出すため、エラーが発生します。
accessing_private_ctor_in_base_class.cpp: In constructor
derived::derived()': accessing_private_ctor_in_base_class.cpp:9: error:
base::base()' is private accessing_private_ctor_in_base_class.cpp:18: error: within this context
どのように私は、コンパイルエラーを除去するために、コードを変更することができます。
#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;
}
このコードはコンパイルエラーを与える:
は、以下のこのコード例を考えてみましょうか?
@ Nawaz:派生クラスをベースクラスの友人にすることができました! –