一、什么是链式编程
顾名思义,就是利用运算后的返回值再继续参与计算,连在一起就像一条链子一样。问题看起来可能有些抽象,其实我们最常用的std::cout与cin就是链式编程:
#include <iostream>
using namespace std;
int main() {
int a;
int b;
cin >> a >> b; //这里的>>运算符就是链式
cout << "a当前的值是" << a << endl; //这里的<<也是链式
cout << "b当前的值是" << b << endl;
return 0;
}
二、类的简单应用
现在有一个Dog类如下:
class Dog {
private :
string sound;
public :
Dog(string s) : sound(s) {}
~Dog() {}
...bark(...){
...
}
}
现在希望实现一个成员函数bark(),使得:在主函数调用几次,就发出几次声音。
int main() {
Dog dog("汪");
dog.bark().bark();//连续调用几次,则叫几次
return 0;
}
这里应该使用this关键字,this返回的值是当前对象的首地址。那如果我们希望通过.运算符调用bark函数,则返回值类型应该是一个Dog对象本身,因此是一个Dog&类型的对象,所以应该返回*this。实现如下:
Dog& bark(void){
cout << sound;
return *this;
}