<< のオーバーロードテンプレートの特殊化を使用した演算子
C では、フレンド演算子 << をオーバーロードすることができます。テンプレートクラスの場合。ただし、通常のフレンド関数の宣言とは異なるアプローチが必要です。
<< をオーバーロードするには、演算子を使用するには、テンプレートの特殊化が必要です。この特殊化には、演算子がオーバーロードされるテンプレート クラスの特定のインスタンスの作成が含まれます。特殊化された宣言は次のように記述されます。
template <> class Pair { // ... friend ostream& operator<<(ostream&, Pair&); }この特殊化では、コンパイラが演算子宣言内のパラメータ リストからテンプレート引数を推論できるため、テンプレート引数は空のままです。
<< の元の宣言投稿されたコード内の演算子はフレンド宣言でしたが、テンプレート クラスのすべてのインスタンスに対して誤って演算子をオーバーロードしようとしました。代わりに、上で概説したテンプレートの特殊化を使用することで、テンプレート クラスの特定のインスタンスがフレンドになり、オーバーロードされた << が可能になります。そのインスタンスにのみ使用される演算子。
以上が` をオーバーロードするにはどうすればよいですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。