C++ 实现链式操作的Number类

需积分: 5 0 下载量 30 浏览量 更新于2024-08-05 收藏 102KB DOCX 举报
"C++ 链式调用实现" 在C++编程中,链式调用(级联调用)是一种设计模式,它允许对象的方法连续调用,返回的对象仍然是调用者本身,从而可以在一条语句中完成多个操作。这种模式常见于JavaScript中的jQuery库或C++中的某些自定义类设计中。在给定的题目中,我们需要为名为`Number`的类实现链式调用的`add`和`sub`方法,以及一个`print`方法来打印结果。 首先,让我们看看如何实现这个`Number`类: ```cpp class Number { public: // 有参构造函数,接收一个int型参数 Number(int v): p(v) {} // add方法,接受一个int型参数,返回*this以便链式调用 Number& add(int v) { p += v; return *this; } // sub方法,接受一个int型参数,通过调用add(-v)实现链式调用 Number& sub(int v) { return add((-1) * v); } // print方法,用于打印结果 void print() { std::cout << p << std::endl; } private: int p; // 存储数值 }; ``` 在这个类中,`add`和`sub`方法都返回了`*this`,这意味着它们调用后会返回当前对象的引用,这样就可以继续调用其他方法。例如,`op.add(2).sub(3)`实际上是先调用了`op.add(2)`,然后将返回的`op`对象传递给`sub(3)`,这样就可以在一个操作序列中完成多个加减运算。 为了完成题目要求,我们可以创建一个`Number`对象,然后根据输入的整数a、b、c进行相应的操作,并最后调用`print`方法输出结果。以下是完整的程序: ```cpp #include <iostream> int main() { int a, b, c; std::cin >> a >> b >> c; Number num(a); num.add(b).sub(c); num.print(); // 输出a - b + c的结果 return 0; } ``` 当输入如示例所示的`135`时,程序将计算`135 - 5 + 3`,并输出结果`133`。这个程序利用了C++的链式调用来简化了原本需要多行代码才能完成的操作,使得代码更加简洁易读。