#include using namespace std; struct Date { int y, m, d; void init(int year, int month, int day) { y = year; m = month; d = day; } void print() { cout << y << "-" << m << "-" << d << endl; } Date& add(int day) { d = d + day; // this 指向调用该函数的类型对象指针;*this 是调用该函数的那个对象;返回 *this 就是返回自引用本身,可以实现链式调用 return *this; } Date& operator+=(int day){ d = d + day; return *this; } }; int main() { Date date; date.print(); // init 方法,对 struct 初始化 date.init(1991, 8, 18); date.print(); date.add(1).add(3); date.print(); // += 运算符重载 date += 1; date.print(); (date +=1) += 2; date.print(); return 0; }