問題タブ [copy-assignment]

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.

0 投票する
1 に答える
118 参照

c++ - コピー割り当てによる異なるオブジェクトのコンテナー間の自動化

std::vector<SparseElement<T,I>>SparseElement が次のタイプのスパース ベクトルがあります。

std::map<I,T>elements を持つスパース ベクトル a を埋めるために使用しているためstd::pair<I,T>、SparseElement の 'index' および 'value' メンバーを変更せずにこれに関する解決策が必要です。

0 投票する
1 に答える
604 参照

c++ - C ++ 11-抽象型を指すスマートポインターのコピー構造?

std::unique_ptrが好きです。これは、メモリリークを防ぐのに役立ちます。これは非常に便利です。ただし、1つの問題があります。それは、コピーの割り当てと構築が許可されていないことです。

この制限はプログラマーの安全に役立ちますが、それもかなり制限されています。コピーの割り当てと構築を使用して、std :: unique_ptrをメンバーとして持つクラスを操作する場合、問題が発生することになります。そのため、コピーの作成と割り当てを使用して、unique_ptrの周りに独自のラッパーを作成しました。これがコピーコンストラクタです:

そして、これがコピー代入演算子です:

タイプ(T)として抽象基本クラスを使用することになったまで、すべてが正常に機能しました。次のようなエラーメッセージが表示されました。

これは私を困惑させます。回避策はありますか?

0 投票する
1 に答える
2049 参照

c++ - このベクトル割り当てが機能しないのはなぜですか?

類似の質問:


これにより、セグ フォールトが発生しますが、その理由はわかりません。

0 投票する
1 に答える
177 参照

c++ - クラスのコピー代入演算子

次の場合、コンパイラはコピー代入演算子を作成しません。

  1. クラスに、const 型または参照型の非静的データ メンバーがあります。
  2. クラスには、アクセスできないコピー代入演算子を持つ型の非静的データ メンバーがあります。
  3. クラスは、アクセスできないコピー代入演算子を持つ基底クラスから派生しています。

上記のケースでは、上記の例でケース1を理解しました。しかし、ケース2とケース3が得られないので、例を挙げて理解してください。

0 投票する
1 に答える
122 参照

c++ - コピー構築または代入によるコピー後にクラス メンバーが文字化けする (ときどき)

私のクラスNRRanNormalは正規分布確率変数を表しています。デフォルトでは、インスタンスは平均 0 および stdev 1 (つまり、標準の正規確率変数) で正規分布されます。

オブジェクトをコピーNRRanNormalすると、コピーされた (またはコピー コンストラクターを介して構築された) オブジェクトの平均値と標準偏差が文字化けしてナンセンスになることがありますこの文字化けの原因を見つけるのに苦労しています。

テスト目的で、次の関数は特定のNRRanNormalオブジェクトの平均値と標準偏差を表示します。

それでは、次の 4 つのケースで何が起こるか見てみましょう。

上記のステートメントの出力は次のとおりです。

ご覧のとおり、オブジェクト ( foo) をインスタンス化するだけで、期待どおりに機能します。

今、私がするときNRRanNormal bar1 = foo;、オブジェクトbar1は文字化けしています。しかし、私が行うNRRanNormal bar2; bar2 = foo;と、オブジェクトbar2は文字化けしません。これは私を困惑させます。のようなステートメントブロックだと思いました

コンパイラによって実際にステートメントブロックに変換されます

したがって、すぐ上に書いたことが間違っていない限り、bar1とはまったく同じメンバー値bar2を持つ必要があるようです。しかし、上に貼り付けた出力からわかるように、文字化けしていますが、問題ありません。 bar1bar2

どうすればいいの?

bar3文字化けしていることにも気付くでしょう。これが同じ問題なのか、別の問題なのかわかりません。


のインターフェースと実装の簡略化されたバージョンを次に示しますNRRanNormal

Normaldev構造体は Numerical Recipes 3d Edition からのものです。

コピー代入演算子またはコピー コンストラクターに何か問題がありますか?


これはNormaldev、独自の計算を取り除いたものです。

0 投票する
2 に答える
358 参照

reference - オブジェクトは D の代入でコピーされますか?

D でオブジェクトを割り当てると、コピーされますか?