利用c++的this指针和引用,能够实现链式编程,我们之间看代码演示。
很重要一点,下面代码中AddAge函数一定有好返回引用类型,否则实现不了返回自身对象,就是利用了引用的一次绑定,终身绑定机制。
#include <iostream>
#include <vector>
using namespace std;
class Person{
public:
int age;
Person& AddAge(int page){
age+=page;
return *this;
}
Person(){
cout<<"构造函数执行"<<endl;
}
Person(const Person & p){
age=p.age;
cout<<"拷贝构造函数执行"<<endl;
}
~Person(){
cout<<"析构函数执行"<<endl;
}
Person GetPerson(Person & p){
Person ptmp;
ptmp.age=p.age+2;
return ptmp;
}
};
int main(int argc, const char * argv[]) {
Person p;
p.age=20;
p.AddAge(1).AddAge(2).AddAge(3); //对自己连续进行链式编程。
cout<<p.age<<endl;
cout << "Hello, World!\n";
return 0;
}