• 締切済み

継承元のpublicなメンバ関数を隠ぺいしたい

C++です.(VC++2013) 親クラスではpublicで宣言されているメンバ関数があり,継承後はこのメンバ関数を隠ぺいしたいときはどのようにすればよいのでしょうか. 具体的には,std::vectorから派生したクラスを定義し,この独自クラスのインスタンスへ要素を追加する場合は,新しく独自に定義した関数を通じて行います. そのため,push_back()を呼べないようにしたいのです. 自分で作成した関数には,pushという名前をつけたいので,単純に自分の要素追加の関数をpush_backという名前でオーバーライドすることはできません. push関数内では,push_backした後,即座にsortしたいので,push_backをいう名前をつけたくないのです. とりあえずは,派生クラスでprivateにpush_backをオーバーライドし,自分で作った要素追加の関数で使うpush_backはstd::vectorのものを用いることを明示することでできました. 他にも何かやり方があれば,ご教授下さい.

みんなの回答

  • ques9900
  • ベストアンサー率34% (47/136)
回答No.1

関連するQ&A

専門家に質問してみよう