1. ホーム
  2. c++

[解決済み] protected コンストラクタの実用的な使用方法とは?

2022-12-21 16:13:06

質問

なぜコンストラクタをprotectedと宣言するのでしょうか? コンストラクタが private と宣言されるのは、スタック上での生成を許可しないためであることは知っています。

どのように解決するのですか?

クラスが抽象クラスである(と意図されている)場合、protected コンストラクタはまさに正しいものです。そのような状況では、オブジェクトがクラスからインスタンス化されることを望まず、クラスから継承するためにのみ使用します。

他の使用例もあります。例えば、特定の構築パラメータのセットが派生クラスに制限されるべき場合などです。