問題タブ [explicit-conversion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - cpp で double および string データ型の演算子 + を定義する
次の関数を使用して、文字列と二重の演算子 + を定義しようとしています
以下の操作をしているとうまくいきます
しかし、 string の代わりに const char を渡すと、コンパイル エラーがスローされます (型 'double' および 'const char [4]' からバイナリ 'operator+' への無効なオペランド)
const char[] "sff" から文字列への暗黙的な変換が行われないのはなぜですか?
c++ - 非 const 参照を異なる型のオブジェクトに初期化できないのはなぜですか?
私はこの本を読んでいましたが、ある型の const 参照を他の型のオブジェクトに割り当てることができると書かれています。その理由は、コンパイラが内部的に参照と同じ型のオブジェクトに Rvalue を割り当て、次に const を割り当てるためです。参照は同じ型のオブジェクトに初期化されますが、この型の暗黙的な変換が異なる型のオブジェクトに割り当てられた const 参照を取得するのに役立つ場合、この明示的な変換のため、同じ変換を暗黙的に行うことができないのはなぜですか。
同じように動作していますが、コンパイラで事前に構成されていないのはなぜですか?
c++ - 「x」がクラスのインスタンスであり、暗黙的な変換ではない「if (x)」はどうですか?
cppreference.com によると、暗黙的な変換に明示的な変換関数を使用することはできません。例として、彼らはこれを持っています:
「if (b2)」は暗黙的な変換であり、明示的な変換関数を使用できないと思っていたでしょう。それでは、許可されない暗黙的な変換の例は何でしょうか?