我需要创建一个提供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。
感谢帮助!
答案 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