ホームページ  >  記事  >  バックエンド開発  >  C++11 共通構文 - 明示的な型変換演算子の具体的な使用法

C++11 共通構文 - 明示的な型変換演算子の具体的な使用法

php是最好的语言
php是最好的语言オリジナル
2018-07-26 13:54:492381ブラウズ

明示的な型変換演算子と C 入門書の違いを考え、より有意義な例を提供するために、著者は多くの考察を費やしましたので、よく理解してください。

型変換演算子

次の例を見てください。

C++11 共通構文 - 明示的な型変換演算子の具体的な使用法

この時点で、 plural クラス、double 型の型変換演算子を定義します。取得したら、次のように使用できます:

C++11 共通構文 - 明示的な型変換演算子の具体的な使用法

##出力結果は次のとおりです:

C++11 共通構文 - 明示的な型変換演算子の具体的な使用法

complex is not 出力演算子がサポートされているため、コンパイラーは c1 を double 型に変換して出力しようとします。ここまでは順調ですね。

本当に double に変換しますか?

次のコードをもう一度見てください:

C++11 共通構文 - 明示的な型変換演算子の具体的な使用法

If数学から 観点から見ると、2.23606 が出力されるはずです。しかし実際には、このコードはコンパイルすらできません。その理由は、コンパイラにはこのコードに対して 2 つのオプションがあるためです: 1 つは c1 を double に変換してから 1 を加算することであり、もう 1 つは 1 を複素数 (1 0i) に変換してから複素加算を実行することです。

プログラマにアイデアを教えてもらいたい。

明示的な型変換演算子

曖昧さを排除するための 1 つの方法は、明示的な型変換を使用して暗黙的な double 型変換を禁止することです。コードは次のとおりです。

C++11 共通構文 - 明示的な型変換演算子の具体的な使用法

暗黙的な型変換ができないため、次のコードではコンパイル エラーが発生します。

C++11 共通構文 - 明示的な型変換演算子の具体的な使用法

二重出力への変換が正しいかどうかを判断するのは難しいため、これは大きな問題ではありません。このコードは、出力演算子のオーバーロードを通じて複数形式の出力関数を提供しています。

出力は次のとおりです。

C++11 共通構文 - 明示的な型変換演算子の具体的な使用法

これが私たちが本当に望んでいることです。

追加ポイント

必要に応じて、次のようにエンコードすることもできます:

C++11 共通構文 - 明示的な型変換演算子の具体的な使用法

この記事を検索役立つ?もっと多くの人にシェアしてください。

関連する推奨事項:

HTML 演算子、型変換

C# カスタムの暗黙的および明示的な変換

#C 言語チュートリアル

以上がC++11 共通構文 - 明示的な型変換演算子の具体的な使用法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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