問題タブ [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 - Gtk ウィジェットをコピーする良い方法はありますか?
C で Gtk ライブラリを使用して、(たとえば) Gtk ボタンを複製し、アプリの別の場所にパックする方法はありますか。同じウィジェットを 2 回パックできないことはわかっています。そして、このコードは明らかに機能しませんが、ボタンの浅いコピーを試みるとどうなるかを示しています。
vbox を作成してウィンドウにパックし、gtk_main() を実行する周囲のコードがあります。これにより、次のような理解しにくいエラー メッセージが表示されます。
同じように、独自の GObject (必ずしも Gtk ウィジェットではない) を作成する場合、コピー コンストラクターを作成する良い方法はありますか。オプションのフックを備えたインターフェイスであり、ほとんどがプロパティに基づいており、クラスの階層を何らかの方法で処理する必要があると考えています。
私はこれをしたいと思います:
GtkButton が理論上のコピー可能なインターフェイスを使用できる場合。
c++ - スーパークラスへのポインターを渡すことはできますが、子のコピーを作成できますか?
スーパークラスへのポインターを受け取り、その上で操作を実行する関数があります。ただし、ある時点で、関数は入力されたオブジェクトのディープコピーを作成する必要があります。そのようなコピーを実行する方法はありますか?
関数をテンプレート関数にして、ユーザーに型を渡してもらうことに気づきましたが、C++がより洗練されたソリューションを提供することを期待しています。
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 この質問は、実際的な質問というよりも思考演習です。私の目的では、これを同じように簡単に行うことができます:(私の「ベースクラス」がコピーを作成できると仮定して)
c++ - C++ auto_ptr とコピーの作成
クラスがあれば
C のコピー コンストラクターを定義するにはどうすればよいですか。
まさか
auto_ptr を other からコピーしたいので、所有権を削除して other を変更しました。コピーコンストラクターを次のように定義することは合法ですか?
c++ - コピー代入演算子が参照/定数参照を返さなければならないのはなぜですか?
C++ では、コピー代入演算子から参照を返すという概念がよくわかりません。コピー代入演算子が新しいオブジェクトのコピーを返せないのはなぜですか? さらに、 classA
があり、次の場合:
はoperator=
次のように定義されます。
c++ - 戻り値参照のコピー構築と割り当ての防止
ソースを制御できないクラスのインスタンスへの参照を返す関数がある場合は、次のように言いますlist<int>
。
その値が別の参照にのみ割り当てられるようにしたい。
ユーザーが代わりに行う場合:
ユーザーは元のリストではなく、リストのコピーのみを操作するため、コンパイル時のエラーにしたいと考えています (これは、アプリケーションで意図されている/求められているものではありません)。
上記のコピー構築と割り当てを防ぐ方法はありますか (ある種の「ラッパー」クラスを介して)。
理想的には、ラッパー クラスを使用する場合、たとえばwrapper<T>
、任意のタイプのオブジェクトに対して機能するようにしたいと考えていますT
。
はい、私が制御できるクラスの場合、コピーコンストラクターと代入演算子を次のように単純に作成できることを知っています。private
コピー構築と割り当てを禁止する。std::list
しかし、上記のように、たとえば、単純にコピーコンストラクターと代入演算子を作成できない場合にこれを実行したいと考えていますprivate
。
c++ - そのような最適化は g++ に存在しますか?
次のコード スニペットを検討してください。
これはどのような挙動になりますか?このコードは次のようになります:
method() からの戻り値の最適化によって返された someClass インスタンスへの参照を返し、その参照に対して someClass のコピー コンストラクターを実行しますか?
どういうわけかコピーコンストラクターを呼び出さないようにしますか?
具体的には、非常に大きなリストを返すメソッドがあり、戻り値ごとにコピー コンストラクターを呼び出さないようにしたいと考えています。
編集:ええと、申し訳ありませんが、コードは今コンパイルされます...
c++ - いつコピー コンストラクターを使用する必要がありますか?
C++ コンパイラがクラスのコピー コンストラクタを作成することは知っています。どのような場合に、ユーザー定義のコピー コンストラクターを作成する必要がありますか? いくつか例を挙げていただけますか?
c++ - コピーアンドスワップの慣用句とは何ですか?
このイディオムは何ですか? また、いつ使用する必要がありますか? どの問題を解決しますか? C++11を使うとイディオムが変わる?
あちこちで言及されていますが、「それは何ですか」という単一の質問と回答がなかったので、ここにあります。以前に言及された場所の部分的なリストを次に示します。
c++ - C++ のコピー コンストラクターに関する大騒ぎは何ですか?
重複の可能性:
いつコピー コンストラクターを使用する必要がありますか?
C++ コピー コンストラクターがなぜそれほど重要なのでしょうか? 私はそれらについて学んだばかりで、何が彼らについて大騒ぎしているのかよくわかりません. ポインターを使用する場合は、常にクラスのコピー コンストラクターを作成する必要があるようですが、なぜでしょうか?
ありがとう、ボダ・シド。