C を使用したオブジェクト指向プログラミングでは、コンストラクターはオブジェクトを初期化する特別なメンバー関数です。コンストラクターはテンプレートとして定義でき、一般的な初期化動作が可能ですが、多くの場合、コンストラクターの呼び出し中にテンプレート パラメーターを明示的に指定することが望ましいです。
A というクラスが簡単な例として機能します。
struct A { template<typename T> A() {} };
上記のコードは、ジェネリック データ型 T を受け入れるテンプレート コンストラクターを定義しています。ただし、このコンストラクターを呼び出すとき、コンパイラーは通常、指定された引数からの型推定に依存します。コンストラクターのテンプレート パラメーターを明示的に指定する方法はありますか?
残念ながら、答えはノーです。 C 03 標準によれば、「これらの関数テンプレートに明示的なテンプレート引数リストを提供する方法はありません。」これは、明示的なテンプレート引数リストが関数テンプレート名の後に続き、変換メンバー関数テンプレートとコンストラクター メンバー関数テンプレートが関数名を使用せずに呼び出されるからです。
注: この動作は異なる場合があります。 C の新しいバージョンでは。確認するには、使用している C の特定のバージョンの標準またはドキュメントを参照してください。
以上がC でコンストラクターを呼び出すときに、テンプレート パラメーターを明示的に指定できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。