4-6this指针
Array printInfo();——要求返回值类型是一个对象
Array Array::printInfo(){
return *this; //返回出去之后的*this指针是一个临时的对象,并不是arr对象
}
Array& Array::printInfo(){
return *this; //这样返回出去的就是arr1了。 在类中也要这样定义,加入引用之后,一切都清晰起来了
}
使用点号可以将多个方法穿起来使用
声明和定义函数用的是&,即为引用,返回值要加*,即为return *this; 调用函数是用点号.
声明和定义函数用的是*,即为指针,返回值不用加* ,即为return this;调用函数是用->
1.可用this指针做返回
2.*this对象做返回与引用Array &配合
都可对原对象做操作
class Array
{
public:
Array(int len);
~Array();
Array* setLen(int len);//注意
int getLen();
Array& printInfo();//注意
private:
int len;
};
Array* Array::setLen(int len)
{
this->len = len;
return this;
}
Array& Array::printInfo()
{
cout<<"len = "<<len<<endl;
return *this;
}
int main(void)
{
Array arr1(10);
arr1.printInfo().setLen(5)->printInfo();//这里都是针对arr1的操作
system("pause");
return 0;
}
网友评论