問題タブ [copy-constructor]
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++ - コピーコンストラクターで代入演算子を呼び出す
このようなコピーコンストラクタの実装にはいくつかの欠点がありますか?
私が覚えているように、ある本では代入演算子からコピーコンストラクターを呼び出してよく知られたスワップトリックを使用することが推奨されていましたが、なぜか覚えていません...
templates - テンプレート クラスの暗黙的なコピー コンストラクターの問題
gdb で私のプログラムをステップ実行すると、108 行目で呼び出し元の関数に戻り、クラス A のコピー コンストラクターが呼び出されません。
ヒントはありますか?私はこれについて4時間頭を壁にぶつけましたが、ここで何が起こっているのか思いつかないようです.
c++ - コピーコンストラクタとデストラクタへの無関係な呼び出し
[この質問のフォローアップ]
出力は次のとおりです。
sqlite - NSString alloc:initWithCStringとstringWithUTF8Stringの違いは何ですか?
これらの2つの方法は(メモリ割り当てに関して)同等だと思いましたが、便利な方法(以下にコメント)を使用して切り替えたときに、デバッガーに「範囲外」と「NSCFString」が表示されていました。より明示的な方法で、私のコードはクラッシュしなくなりました!sqlite3クエリからコンテナに保存されている文字列を取得していることに注意してください。
また、デバッガーで値を確認し、NSLogで出力した場合、それらは正しいように見えましたが、新しいメモリが割り当てられ、値がコピーされたとは思わないことにも注意してください。代わりに、メモリポインタが保存されました-スコープ外になりました-後で参照されます-クラッシュします!
c# - C# がコピー コンストラクターの概念をサポートしないのはなぜですか?
あるインタビューでこの質問をされましたが、なぜこの概念がないのか正確にはわかりませんでした。
私にお知らせください。
c++ - コピーコンストラクターがC++で参照によってパラメーターを受け入れる必要があるのはなぜですか?
コピー コンストラクターのパラメーターを参照渡しする必要があるのはなぜですか?
c++ - コンストラクターのデモをコピーします(クラッシュしています...)
これがプログラムです...
コードの実行が完了すると、デストラクタが呼び出されると、「delete」でクラッシュして...
デバッグエラー!
プログラム:..。
検出されたヒープ破損:0x00366990の通常ブロック(#124)の後。CRTは、ヒープバッファの終了後にアプリケーションがメモリに書き込んだことを検出しました。
(アプリケーションをデバッグするには、[再試行]を押します)
デストラクタのヒープメモリをクリアする必要はありません。このプログラムの何が問題になっていますか?誰か助けてください!コピーコンストラクターは、意図したとおりに完全に機能します。それでも... !?
c++ - コピーコンストラクター、値関数で返される理由
私が持っているとします:
次に、最後の行でコンパイル エラーが発生します。しかし、'A&' の前に 'const' を追加すれば問題ありません。
理由を知りたいです。それは正確にどこに問題がありますか?なぜconstでなければならないのかわかりません。
言語: C++
編集しました...その変更は関連があると思います。それはエラーを出します。
c++ - このコンストラクターは受け入れられるプラクティスでしょうか?
コピー コンストラクターとオーバーロードされた = 演算子を適切に実装した C++ クラスがあるとします。適切に実装されているということは、それらが機能しており、ディープコピーを実行していることを意味します。
今、私もこのコンストラクターを持っているとしましょう:
私の質問は、上記のコンストラクターは許容される方法でしょうか? これは、私が継承して維持しているコードです。