ホームページ  >  記事  >  バックエンド開発  >  C でコンストラクターを呼び出すときに、テンプレート パラメーターを明示的に指定できますか?

C でコンストラクターを呼び出すときに、テンプレート パラメーターを明示的に指定できますか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-15 12:59:02534ブラウズ

Can You Explicitly Specify Template Parameters When Invoking a Constructor in C  ?

コンストラクター呼び出しでの明示的なテンプレート パラメーターの指定

C を使用したオブジェクト指向プログラミングでは、コンストラクターはオブジェクトを初期化する特別なメンバー関数です。コンストラクターはテンプレートとして定義でき、一般的な初期化動作が可能ですが、多くの場合、コンストラクターの呼び出し中にテンプレート パラメーターを明示的に指定することが望ましいです。

A というクラスが簡単な例として機能します。

struct A {
   template<typename T>
   A() {}
};

上記のコードは、ジェネリック データ型 T を受け入れるテンプレート コンストラクターを定義しています。ただし、このコンストラクターを呼び出すとき、コンパイラーは通常、指定された引数からの型推定に依存します。コンストラクターのテンプレート パラメーターを明示的に指定する方法はありますか?

残念ながら、答えはノーです。 C 03 標準によれば、「これらの関数テンプレートに明示的なテンプレート引数リストを提供する方法はありません。」これは、明示的なテンプレート引数リストが関数テンプレート名の後に続き、変換メンバー関数テンプレートとコンストラクター メンバー関数テンプレートが関数名を使用せずに呼び出されるからです。

注: この動作は異なる場合があります。 C の新しいバージョンでは。確認するには、使用している C の特定のバージョンの標準またはドキュメントを参照してください。

以上がC でコンストラクターを呼び出すときに、テンプレート パラメーターを明示的に指定できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。