0
#include <iostream>

using namespace std;

class armon {
    int a;
    int b;

public:
    armon(int newA, int newB) : a(newA), b(newB) {}

    armon setA(int newA) {
        a = newA;
        return *this;
    }

    armon setB(int newB) {
        b = newB;
        return *this;
    }

    void print(void) { cout << a << endl << b; }
};

int main() {
    armon s(3, 5);

    s.setA(8).setB(9);

    s.print();
}
  1. 为什么我不能只返回带有 this 指针的对象来进行级联函数调用?
  2. 为什么我需要返回对象的引用?
  3. 那还能做什么?
4

1 回答 1

7

返回this指针也足够了。但是,级联调用的语法需要在链的中间进行更改:

s.setA(8)->setB(9)->setC(10);

这看起来不一致,因此返回引用是更好的选择。

于 2014-09-04T01:47:40.857 回答