問題タブ [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++ - デフォルトの引数を持つコピーコンストラクタ
私の知る限り、コピーコンストラクターはまたはの形式である必要がありT(const T&)
ますT(T&)
。署名にデフォルトの引数を追加したい場合はどうなりますか?
それは標準に準拠していますか?
c++ - C++でコンストラクタをコピーする
私はこのコードを持っています
出力:
コピーコンストラクタがここで呼び出されないのはなぜですか?
c++ - コンストラクターまたは代入演算子
この場合、どちらがコンストラクターまたは代入演算子と呼ばれるかを説明するC++標準の定義がありますか。
それとも、コンパイラの最適化の問題ですか?
c++ - QObjectのクローン作成
Qobjects は値ではなく ID であると想定されていることを知っています。たとえば、それらをコピーすることはできず、qt のドキュメントで説明されているように、デフォルトではコピー コンストラクターと割り当てが無効になっています。しかし、クローン メソッドを使用して、既存の QObject から新しい QObject を作成することは可能ですか? これは論理エラーでしょうか? 私が言うなら
また
clone メソッドはメンバーなどのものをコピーしますが、これは間違っていますか?
これでよければ、それを行う独自のコピー コンストラクターと代入演算子を作成できますか?
注: 実際には、qobject を継承するクラスでこれを試してみたいと思っています。
c++ - CArray は、メモリの再割り当てでコピー コンストラクターを呼び出しません。
次の正しいコピーを作成するために、コピー コンストラクターを呼び出す必要があるクラスがあるとします。
ここでの問題は、メモリを再割り当てするときに CArray がその要素に対してコピー コンストラクタを呼び出さないことです (古いメモリから新しいメモリへの memcpy のみ)。たとえば、次のコードです。
結果は
わかりません。std::vector は同じオブジェクトを適切にコピーでき、CArray はできないのはなぜですか? ここでの教訓は何ですか?明示的なコピー コンストラクターを必要としないクラスのみを使用する必要がありますか? それとも、重大なことに CArray を使用するのは悪い考えですか?
c++ - c++ STL ベクトルがコピー コンストラクターを受け入れない
コピー const が宣言されていても、ベクトルを持つコード (c++、visual studio 2010) を作成しましたが、コピー const が宣言されていないことを示しています
ここにコード
私が得たエラーは
エラー 1 エラー C2558: クラス 'A': コピー コンストラクターが使用できないか、コピー コンストラクターが '明示的' と宣言されています c:\program files\microsoft visual studio 10.0\vc\include\xmemory 48 1 削除
誰でも私を助けてください
c++ - C++ では、変数を返すとどうなりますか?
変数が返されると、段階的に何が起こるか。組み込みで適合する場合、rax/eax/ax にスローされることはわかっています。適合しない場合、および/または組み込みでない場合はどうなりますか? さらに重要なことは、コピー コンストラクターの呼び出しが保証されているかどうかです。
編集:デストラクタはどうですか?それは「時々」、「常に」、または「決して」と呼ばれますか?
c++ - 可変引数コンストラクターは、暗黙的に生成されたコンストラクターを非表示にすることになっていますか?
可変引数コンストラクターは、暗黙的に生成されたコンストラクター、つまりデフォルト コンストラクターとコピー コンストラクターを非表示にすることになっていますか?
どういうわけか、この回答を読んだ後、これが何も出力しないことを期待していましたが、g ++ 4.5.0で2回出力inside the variadic constructor
されます:(この動作は正しいですか?
可変個引数テンプレートなしでも発生します。
ここでも、両方の行が印刷されます。
c++ - デストラクタとコピーコンストラクタの呼び出し..(なぜこれらの時間に呼び出されるのですか)
私は次のコードを持っています
どの出力
Object v4 = v1;
これにはいくつか問題があります。まず、コピーコンストラクターを呼び出してCopy-construct(1)
、の印刷後に生成するのはなぜですか( b )
。
また、コピーコンストラクターの印刷( c )
が再び2回呼び出された後、この関数がどのように機能してそれを生成するのかわかりません。
Object func(Object var) { return var; }
そしてその直後に Destruct(1)
2回呼び出されてから( d )
印刷されます。
長い質問でごめんなさい、私は上記と混同しています。
c++ - コンストラクターのデモをコピー (クラッシュ... ケース 2)
このプログラムを見てください:
このプログラムは実行時にクラッシュします。エラー: 「式: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)」
割り当て演算子を使用して名前に「はい」を割り当てると、クラッシュします。文字列 func _tcscpy を使用して「Hai」を名前に割り当てると、完全に機能します。誰かがその理由を説明できますか?