問題タブ [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.

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

c - Gtk ウィジェットをコピーする良い方法はありますか?

C で Gtk ライブラリを使用して、(たとえば) Gtk ボタンを複製し、アプリの別の場所にパックする方法はありますか。同じウィジェットを 2 回パックできないことはわかっています。そして、このコードは明らかに機能しませんが、ボタンの浅いコピーを試みるとどうなるかを示しています。

vbox を作成してウィンドウにパックし、gtk_main() を実行する周囲のコードがあります。これにより、次のような理解しにくいエラー メッセージが表示されます。

同じように、独自の GObject (必ずしも Gtk ウィジェットではない) を作成する場合、コピー コンストラクターを作成する良い方法はありますか。オプションのフックを備えたインターフェイスであり、ほとんどがプロパティに基づいており、クラスの階層を何らかの方法で処理する必要があると考えています。

私はこれをしたいと思います:

GtkButton が理論上のコピー可能なインターフェイスを使用できる場合。

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

c++ - スーパークラスへのポインターを渡すことはできますが、子のコピーを作成できますか?

スーパークラスへのポインターを受け取り、その上で操作を実行する関数があります。ただし、ある時点で、関数は入力されたオブジェクトのディープコピーを作成する必要があります。そのようなコピーを実行する方法はありますか?

関数をテンプレート関数にして、ユーザーに型を渡してもらうことに気づきましたが、C++がより洗練されたソリューションを提供することを期待しています。

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

c# - リフレクションを使用して、オブジェクトの基本クラスのプロパティをインスタンス化できますか?

このような:

この例は少し単純ですが(Jira APIからのものです-RemoteStatusには4つのプロパティがあります)、基本クラスに30のプロパティがあると想像してください。特に、継承されたクラスに2、3の追加プロパティしかない場合は、これらすべての値を手動で設定したくありません。

振り返りは答えをほのめかしているようです。

コンストラクターでの継承の使用(publix X():y)で、基本クラスのコンストラクターを呼び出すことができることを確認しました(間違っている場合は修正してください)が、基本クラスにはコンストラクターがありません。 jira wsdl


編集 私は2つの有効な解決策を想像することができます:上で概説したものと、そのようなある種のキーワードthis.baseClassは、そのようtype(baseclass)に操作され、の一種のポインタとして機能しますthis。だから、this.baseClass.name = "Johnny"まったく同じことになるでしょうthis.name = "Johnny"

すべての目的と目的のために、基本クラスにコピーコンストラクターがあると仮定しましょう。つまり、これは有効なコードです。


edit2 この質問は、実際的な質問というよりも思考演習です。私の目的では、これを同じように簡単に行うことができます:(私の「ベースクラス」がコピーを作成できると仮定して)

0 投票する
3 に答える
489 参照

c++ - C++ auto_ptr とコピーの作成

クラスがあれば

C のコピー コンストラクターを定義するにはどうすればよいですか。

まさか

auto_ptr を other からコピーしたいので、所有権を削除して other を変更しました。コピーコンストラクターを次のように定義することは合法ですか?

0 投票する
7 に答える
50029 参照

c++ - コピー代入演算子が参照/定数参照を返さなければならないのはなぜですか?

C++ では、コピー代入演算子から参照を返すという概念がよくわかりません。コピー代入演算子が新しいオブジェクトのコピーを返せないのはなぜですか? さらに、 classAがあり、次の場合:

operator=次のように定義されます。

0 投票する
5 に答える
2887 参照

c++ - 戻り値参照のコピー構築と割り当ての防止

ソースを制御できないクラスのインスタンスへの参照を返す関数がある場合は、次のように言いますlist<int>

その値が別の参照にのみ割り当てられるようにしたい。

ユーザーが代わりに行う場合:

ユーザーは元のリストではなく、リストのコピーのみを操作するため、コンパイル時のエラーにしたいと考えています (これは、アプリケーションで意図されている/求められているものではありません)。

上記のコピー構築と割り当てを防ぐ方法はありますか (ある種の「ラッパー」クラスを介して)。

理想的には、ラッパー クラスを使用する場合、たとえばwrapper<T>、任意のタイプのオブジェクトに対して機能するようにしたいと考えていますT


はい、私が制御できるクラスの場合、コピーコンストラクターと代入演算子を次のように単純に作成できることを知っています。private

コピー構築と割り当てを禁止する。std::listしかし、上記のように、たとえば、単純にコピーコンストラクターと代入演算子を作成できない場合にこれを実行したいと考えていますprivate

0 投票する
4 に答える
413 参照

c++ - そのような最適化は g++ に存在しますか?

次のコード スニペットを検討してください。

これはどのような挙動になりますか?このコードは次のようになります:

  1. method() からの戻り値の最適化によって返された someClass インスタンスへの参照を返し、その参照に対して someClass のコピー コンストラクターを実行しますか?

  2. どういうわけかコピーコンストラクターを呼び出さないようにしますか?

具体的には、非常に大きなリストを返すメソッドがあり、戻り値ごとにコピー コンストラクターを呼び出さないようにしたいと考えています。

編集:ええと、申し訳ありませんが、コードは今コンパイルされます...

0 投票する
7 に答える
74124 参照

c++ - いつコピー コンストラクターを使用する必要がありますか?

C++ コンパイラがクラスのコピー コンストラクタを作成することは知っています。どのような場合に、ユーザー定義のコピー コンストラクターを作成する必要がありますか? いくつか例を挙げていただけますか?

0 投票する
5 に答える
423666 参照

c++ - コピーアンドスワップの慣用句とは何ですか?

このイディオムは何ですか? また、いつ使用する必要がありますか? どの問題を解決しますか? C++11を使うとイディオムが変わる?

あちこちで言及されていますが、「それは何ですか」という単一の質問と回答がなかったので、ここにあります。以前に言及された場所の部分的なリストを次に示します。

0 投票する
5 に答える
8355 参照

c++ - C++ のコピー コンストラクターに関する大騒ぎは何ですか?

重複の可能性:
いつコピー コンストラクターを使用する必要がありますか?

C++ コピー コンストラクターがなぜそれほど重要なのでしょうか? 私はそれらについて学んだばかりで、何が彼らについて大騒ぎしているのかよくわかりません. ポインターを使用する場合は、常にクラスのコピー コンストラクターを作成する必要があるようですが、なぜでしょうか?

ありがとう、ボダ・シド。