assignment-operator

    5

    1答えて

    vector(listおよび他のコンテナと同様に)はメンバ関数(MF)assignを持っています。 assign MF(レンジバージョン)と代入演算子を比較したいと思います。私の知る限り、ときassignを使用すると便利であることを理解として : 一つは(ない最初から最後まで)ベクトルのサブ範囲を割り当てることを望んでいます。 割り当ては配列から行われます。 他の場合には、assign MFには反

    3

    1答えて

    私は、子クラスが使用できる演算子オーバーロードを持つ基本クラスを作成できるかどうか自問してきました。 (テンプレート付き) 例: #include <cassert> template<typename T> struct Base { T value {}; Base& operator=(const T& newVal) { this->value = newVal;

    5

    2答えて

    私はQTのソースを読んでいると私はこの何倍ものようなコードを見てきました:だから buttonOpt.QStyleOption::operator=(*opt); を、私はそれがbuttonOpt = *optのようなものであると思いますが、なぜやりますデフォルトとユーザーフレンドリーの代わりにこの構文を使用していますか?これは速いのですか他の利益が存在しますか?

    7

    4答えて

    例えば、それは私を困惑: Aのフィールド bufを通じて struct A { // some fileds... char buf[SIZE]; }; A a; a = a; 、それはデフォルトの割り当て操作はYに、オブジェクトXを割り当てることmemcpyのようなものを呼び出すことのように、おそらく見えますので、どのような自体にオブジェクトを割り当てる場合上にa = a

    7

    1答えて

    int a[10]; int b[10]; a = b; // struct test { int a[10]; }; test a,b; a = b; は、最初のコードは、コンパイルされませんが、2番目はありません。クラスのデフォルトの代入演算子は各データメンバーの単なる呼び出し代入ですか?なぜ2番目のコードはコンパイルされますか?

    13

    1答えて

    この質問は約履歴(問題についてのあなたの現在の意見ではありません)。 スウィフトのインクリメント/デクリメント演算子のサポートを廃止することについてのポストを読んでいるうちに、「スウィフトは=、+ =などの代入のような操作がVoidを返すという点で既にCから逸脱しています。 これまでのある時期に、何らかの理由で割り当てを評価することを意識的に決定しました。 そして、私はそれらをの歴史のある(今)の

    8

    2答えて

    私は [,1] [,2] [1,] 1 7 [2,] 2 4 私は[<-の周りを少し遊んでみました、そしてそれましたが返さ例えば x <- matrix(1:4, nrow = 2) `[<-`(x, 1, 2, 7) 、ポーランド記法を持つ関数として[<-を使用している人々のカップルを見てきましたこのように使用すると、実際に割り当てを実行せずにx[1,2] <- 7のような結果が

    1

    1答えて

    抽象基本クラスA*へのポインタがあれば、それを(基本クラスとして)コピーまたは代入し、派生コピーコンストラクタまたは代入演算子を呼び出す必要があります。私はコピーコンストラクタが仮想ではないことを理解しているので、おそらくコピーコンストラクタはこれを行うためのオプションではありませんが、代入演算子はそうです。それでも動作していないようです:次のコードは、bの割り当てに失敗した assigned a

    -1

    1答えて

    Scott Meyersの "Effective C++"項目26:可能な限り長い変数定義を延期すると、代入のコストは確実にコンストラクタとデストラクタのペアより小さくなりません。 異なるデータ型またはクラスの場合、代入のコストをコンストラクタとデストラクタのペアと比較するにはどうすればよいでしょうか。 私の意見では、コンストラクタとデストラクタのペアはメモリの割り当てと割り当てを解除する必要があ

    12

    1答えて

    私の理解では、 T(T const& x) : base1(x), base2(x) ... , var1(x.var1), var2(x.var2)... {} 移動コンストラクタに似て&移動アサインも同様のパターンを以下のコピー。 はなぜそれは次のような定義されていませんでしたか? T(T const& x) : base1(static_cast<base