問題タブ [conversion-operator]
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++ - 演算子 = C++ の Const 変数によるオーバーロード
皆さんが私を助けてくれるかどうか疑問に思っていました。
ここに私の.hがあります:
そして私のメイン:
operator= 関数を実行したい。誰でも私を助けることができますか?Doctor の const メンバーに注目してください。
************編集:************ 私の主な問題は、Pacient に Doctor があるように、別のクラスに Doctor という属性を持たせたいということです。しかし、私は私の医者を変えることができるようにしたい. 私は医者 A を見ているように、私は医者 B に会いたいと思っています。コードを実行するのが私だったら、次のように言います。
ポインタを変更します。ただし、教師の1人が作成したベースコードを使用しており、クラスは次のように定義されています。
しかし、Patient クラスの setDoctor() を使用すると、コピーを作成するか、変数自体を変更するため、これは不可能だと思います。最初のものは違いがなく、2番目のものは const のために不可能です。私は正しいですか?
c++ - 参照による Swig C++ Lua パス クラス
なぜこれで苦労しているのかわかりません。私がやりたいのはこれだけです:
私が抱えている問題は、このコードをスウィッグした後、lua スクリプトを適切に実行する方法がわからないことです。
私が得るエラーは「オーバーロードされた関数 'new_Foo2' の間違った引数」です: 考えられる c/c++ プロトタイプは次のとおりです: foo2() foo2(foo const &)
do f2 = f を使用しようとすると、同じことが起こります。私が理解しているように、すべてがポインターとして格納されているため、fooへのポインターを使用するコンストラクターを追加しようとしましたが、役に立ちませんでした。
c++ - 変換演算子は C++ でどのように機能しますか?
次の簡単な例を考えてみましょう。
変換演算子は C++ でどのように機能しますか? (つまり) コンパイラはいつ変換演算子の後に定義された型を置換しようとしますか?
c++ - C++ の変換演算子
C++ の変換演算子がどのように機能するかを正確に理解するのを手伝ってください。ここに理解しようとしている簡単な例がありますが、コンパイラによって実際に変換がどのように行われるかはあまり明確ではありません。
c++ - 変換コンストラクターと変換演算子:優先順位
変換演算子とコンストラクターに関するSOに関するいくつかの質問をここで読んだことで、それらの間の相互作用、つまり「あいまいな」呼び出しがある場合について考えるようになりました。次のコードを検討してください。
上記のコードは「Aの変換演算子と呼ばれる」を表示します。これは、コンストラクターではなく変換演算子が呼び出されることを意味します。operator B()
からコードを削除/コメントアウトするA
と、コンパイラは代わりにコンストラクタを使用するように切り替えます(コードに他の変更はありません)。
私の質問は次のとおりです。
- コンパイラーは
B b = A();
あいまいな呼び出しとは見なさないため、ここでは何らかの優先順位が機能している必要があります。この優先順位はどこで正確に確立されていますか?(C ++標準からの参照/引用をいただければ幸いです) - オブジェクト指向の哲学的観点から、これはコードの動作方法ですか?オブジェクトがどのようにオブジェクトに
A
なるべきかについて、誰がもっと知っていますか?C ++によると、答えは次のとおりです。オブジェクト指向の実践で、これが当てはまるはずだと示唆するものはありますか?個人的にはどちらにしても意味があるので、どうやって選んだのか知りたいです。B
A
B
A
前もって感謝します
c++ - C ++でマザークラスoperator =を呼び出す一般的な方法は?
Animal クラスを継承する Dog クラスがあるとします。Dog::operator= に Animal::operator= への呼び出しを挿入するとよいでしょう。
それを書くための最も読みやすい/一般的な方法は何ですか?
あの二人は知ってると思う…
と
c++ - 値による明示的なコピーコンストラクターまたは暗黙的なパラメーター
私は最近読んだ(そして残念ながらどこを忘れた)、operator=を書く最良の方法は次のようになっている:
これの代わりに:
考え方は、operator =が右辺値で呼び出された場合、最初のバージョンはコピーの構築を最適化できるということです。したがって、右辺値で呼び出された場合、最初のバージョンの方が高速であり、左辺値で呼び出された場合、2つは同等です。
他の人がこれについてどう思うか知りたいですか?明確性の欠如のために、人々は最初のバージョンを避けますか?最初のバージョンが良くなる可能性があり、決して悪くなることはないというのは正しいですか?
c++ - C++: operator= のオーバーロード
わかりましたので、「弱い型付け」IEを持つクラスがあり、次のように定義されたさまざまな型を格納できます。
次のように代入演算子をオーバーロードしたいと思います。
私がこれを行うことができるように:
しかし、それを行うと、次のようになります。
課題で。
私も試しました:
私が得たもの:
足りないものはありますか?または、オーバーロードによってそのような変換を行うことは単に不可能ですかoperator=
?
c++ - スタンドアロン関数としての変換演算子
C ++で、ユーザー定義の変換演算子が非静的メンバーのみである必要があるのはなぜですか?他の単項演算子のようにスタンドアロン関数を使用できないのはなぜですか?このようなもの:
c++ - STL: operator= をオーバーロードする方法?
簡単な例があります:
私が知る必要があるのは、 operator = をオーバーロードして、次のような割り当てを行う方法です。
私は多くの方法を試しましたが、常にコンパイラはエラーを返してきました...
このコードを変更せずに機能させるオプションはありますか? 追加の行を書くことはできますが、既存の行を編集または削除することはできません。タイ。
なるほど、分かりました。別の方法でお聞きします..このコードを変更せずに機能させるオプションはありますか? 追加の行を書くことはできますが、既存の行を編集または削除することはできません。タイ。