前提・実現したいこと
基底クラスのデストラクタが仮想関数ではないため,クラスをprivateで継承したいです.
継承ではなくメンバ変数として持つことも考えましたが,基底クラスのメンバ関数をすべて再定義するのは避けたいです.
基底クラスは変更できませんのでご了承ください.
よろしくお願いします.
発生している問題・エラーメッセージ
error C2243: '型キャスト': 'B *' から 'const A &' の変換は存在しますが、アクセスできません。
該当のソースコード
C++
1class A { 2private: 3 int x; 4public: 5 A(const int &n) : x(n) {} 6 int func() { 7 return x; 8 } 9 int func(const A& a) { 10 return x + a.x; 11 } 12}; 13class B : private A { 14public: 15 using A::A; 16 using A::func; 17}; 18int main() { 19 B b(0); 20 b.func(); 21 b.func(b); // error 22 return 0; 23}
回答4件
あなたの回答
tips
プレビュー