C++ のプライベート継承に関する質問がありました。私の質問は、このページhereに関連する参照に基づいています。(「継承が必要な場合はどうすればよいですか? 」という見出しの下)
ケースは、パブリック仮想関数を使用して基本クラスを宣言することです。次に、プライベート継承の下で基本クラスを継承し、派生クラスと名付けます。これは以下のように示されています
class base {
public:
base() {}
virtual ~base() {}
virtual void func_1() {
cout<<"base func1"<<endl;
}
void func_t() {
cout<<"base funct"<<endl;
func_3();
}
private:
void func_3() {
cout<<"base func3"<<endl;
func_1();
}
};
class derived: private base {
public:
derived() {}
~derived() {}
virtual void func_1() {
cout<<"derived func1"<<endl;
}
};
base* b = new derived;
b->func_t();
上記のステートメントは、ベースが派生のアクセスできないベースであるというエラーを出します。上記の派生関数呼び出し関数の一部として func_1 を呼び出したい場合はどうすればよいですか?