1

以下のように定義されたクラスを考えてみましょう:

struct A
{
    void f();
    void f() const;
    void f() &;
    void f() const &;
    void f() &&;
    void f() const &&;
};

次の違いは何ですか:

1) ボイド A::f(); そして void A::f() &; (これに注意してください!)

2) void A::f() const; そして void A::f() const &;

3) void A::f() &&; そして void A::f() const &&;

4

2 に答える 2

1
  1. f()は の通常の関数でありf() constthis変更可能な lval を指す必要があります
  2. f() constconst 関数です (これは変更できません)f() const &同じですが、これも lval であることを保証します
  3. f()&&これは一時的な値であるf() const &&必要があります。これは変更できない一時的な値である必要があります
于 2013-09-13T02:15:03.923 に答える