問題タブ [assignment-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# 代入演算子 &=
次のブール値がある場合:
次の 3 行のコードは、同じ結果を正常に保存しますか?
1 は 2 のショートカットですが、2 は 3 と同じか、この行の実行時にアプリケーションが爆発するという記事を見つけました...
c++ - 代入演算子 - 自己代入
コンパイラで生成された代入演算子は、自己代入を防ぎますか?
クラス メンバーがポインター型でない場合でも、常に自己割り当てから保護する必要がありますか?
c++ - テンプレート割り当て演算子のオーバーロードの謎
Wrapper
2 つのテンプレート化された代入演算子のオーバーロードによって区別される単純な struct があります。
次に、a と b を宣言します。
b
への割り当てa
は、上記の非 const テンプレート割り当て演算子のオーバーロードを使用し、数字「2」が表示されます。
私を困惑させるのはこれです:私が and を宣言するc
とd
、
および assign d
toc
の場合、2 つの代入演算子のオーバーロードはどちらも使用されず、出力は表示されません。そのため、デフォルトのコピー代入演算子が呼び出されます。const オーバーロードされた代入演算子を使用d
しないように代入するのはなぜですか? または代わりに、代入でデフォルトのコピー代入演算子を使用しないc
のはなぜですか?b
a
c++ - 継承に関する C++ 代入演算子の質問
基本クラスAと派生クラスBの2つのクラスがあり、これを書きます
代入演算子をまだオーバーライドしていない場合、実際にはどうなるでしょうか? これは obj2 の A 部分を obj にコピーするだけでしょうか? これは適切なのか、それともコンパイラが許すエラーなのか? IS_A 関係は、このステートメントの実行を許可しますか? どんな助けでも大歓迎です。
perl - 論理定義論理和の bash 演算子
Perlの論理定義-ORに相当するBash演算子はありますか? 次のようなもの:
また
c++ - リターンで使用されるコンストラクターまたは演算子(C ++)
コピーコンストラクターと代入演算子を実験するためにこのコードを実行します
なぜメッセージが表示されないことがわかりましたreturn x;
か?
コピーコンストラクタまたはoperator=を呼び出すべきではありませんか?
これは出力です:
vb.net - VB.NET: 演算子 '=' が定義されていません ... 同じタイプの変数とオブジェクトに対して?
さて、私はここで完全に混乱しています。私はクラスを持っています...言うMyClass
。私のタイプの別のクラスのいくつかのプロパティがありますMyHelperClass
(他のプロパティとともに)。
私は次のことをしています:
*ここで、.p# はプロパティ、.sv# は有効な値です。.h# は型のプロパティでMyHelperClass
あり、 getHelperClass(a#) はそのクラスのインスタンスを返します。
ここで、h1 の割り当てステートメントが完璧に機能するという奇妙な点があります。問題はありません。ただし、h2 の割り当てステートメントでは、次の青い波線のエラーが表示されます。
Operator '=' is not defined for types myLib.MyHelperClass and myLib.MyHelperClass.
このエラーはまったく発生しません。これを理解するためにどこから始めればよいかさえわかりません。ヘルプ!
201105.06 0305:
h1 の型の署名は ですList(Of myLib.Address)
。ここで、Address
は典型的な住所フィールド (名前、住所、都市、州、郵便番号など) を持つ非常に基本的なクラスです。の戻り値の型getHelperClass
もList(Of myLib.Address)
です。
=
SSSが彼の答えで示唆したように、演算子のないクラスの等価テストに使用している場合、「自然な」方法で動作しないと予想されますが、等価ではなく代入演算子として使用しています。問題はありません。getHelperClass
の結果がh2 に割り当てられることを期待しています。しかし、代わりに=
、 が型に対して定義されていないことがわかります。何らかの理由で、コンパイラがそれを=(EQUALS)
代わりに解釈している可能性はあり=(ASSIGN)
ますか?
その行をコメントアウトし、最初の行でそれが起こっていることについては、明日オフィスに戻って確認するまで待つ必要があります。報告します。
c++ - 建設時のユーザー定義の割り当てに対するプリミティブ
タイトルがぼやけてすみません、何かが足りないようです。
とても基本的なように見えるので、私はこれを投稿するのをためらっていましたが、私はそれを機能させることができません。私のIDEは、次のことが正しくないと言っています。ロングダブルと交換したいIRatioというクラスがあります。
これで、次の行が機能することがわかりました。
しかし、驚いたことに、この行は機能しません。
これを機能させるにはどうすればよいですか?この場合、コピーコンストラクターが呼び出されたと思いますか?または、代入演算子であってもかまいません!std::stringがそれを実行できることを私は知っています。
ありがとう
c++ - c ++:大きなオブジェクトの過度のコピー
SOのコピーコンストラクター/代入演算子についてはすでにかなりの数の質問がありますが、私の問題に合う答えは見つかりませんでした。
私は次のようなクラスを持っています
現在、(プロファイルデータに基づいて)かなり過剰なコピーが行われているようです。それで、私の質問は、これに最もよく取り組む方法ですか?
カスタムコピーコンストラクタ/代入演算子を実装してスワップを使用する必要がありますか?または、独自のスワップメソッドを定義し、割り当ての代わりにそれを(適切な場合)使用する必要がありますか?
私はC++の専門家ではないので、この状況を適切に処理する方法を示す例を高く評価します。
更新:私はひどく明確ではなかったようです..説明しようと思います。このプログラムは基本的にオンザフライの幅優先探索プログラムであり、実行されるステップごとに、ステップ(Foo
クラス)に関するメタデータを格納する必要があります。問題は、(通常は)指数関数的なステップがあることです。したがって、これらのオブジェクトを多数保存する必要があることを想像できます。私が知る限り、常に(const)参照を渡します。グラフのノードから後継を計算するたびに、作成して保存する必要があります。 1つのFooオブジェクト(ただし、この後続の処理では、一部のデータメンバーがこの1つのfooに追加されます)。
私のプロファイルデータは、おおよそ次のようなものを示しています(このマシンには実際の番号がありません):
したがって、グラフを検索するのと同じくらい多くの時間をこのメタデータの保存に費やしていることがわかります。ああ、FooStoreはに保存Foo
しgoogle::sparse_hash_map<long long, Foo, boost::hash<long long> >
ます。
コンパイラはg++4.4またはg++4.5です(私は開発マシンにいないので、現時点では確認できません)。
UPDATE 2構築後、メンバーの一部を次のようなFooインスタンスに割り当てます。
明日は、これをスワップ方式を使用するように変更する必要があると思います。これにより、間違いなくこれが少し改善されるはずです。
達成しようとしているセマンティクスが完全に明確でない場合は申し訳ありませんが、その理由はよくわからないためです。
よろしく、
モーテン