C ++类返回自身

时间:2018-11-09 17:18:02

标签: c++ pointers methods

我需要创建一个提供2D数组操作方法的类。对我来说这不是问题,但是我很难创建一个返回自己对象的方法。

Tab t(7,7,0.1);//this creates class with 7x7 array filed with 0.1 - it works perfectly
t.print(); //prints array 0 - this also works
t.set(6,6,7.5f).set(6,5,8.6f); //should set 7.5 on pos[6][6] and 8.6 on pos [6][5]
t.print();

我不知道此“设置”方法应该返回什么。我不太了解C ++的语法,因为我已经习惯了Java。我看到它应该返回指向this的指针,或者返回this(&this)指针的内容,还是maby常量指针?我不知道。

我不想使用c ++ 11。

感谢帮助!

2 个答案:

答案 0 :(得分:3)

Tab& Tab::set(int, int, double) {
    // whatever
    return *this;
}

此处的返回类型为Tab&,因此后续调用将应用于Tab对象。返回*this返回对当前对象的引用,因此第二个set调用将更改与第一个set调用相同的对象。

答案 1 :(得分:2)

class Foo {
public:
    int x_;

    Foo() : x_(0) {}
    Foo( int x ) : x_(x) {}

    Foo operator()() { return *this; }
}

int main() {
    Foo a( 3 );
    Foo b = a();

    std::cout << b << '\n';

    return 0;
}

输出

3