SW개발/C++
C++ 체이닝(Chaining)
Caniro
2021. 3. 15. 23:39
반응형
체이닝(Chaining)
함수의 반환 값을 해당 인스턴스의 레퍼런스로 전달하여, 연속해서 함수를 사용할 수 있도록 하는 기법이다.
아래와 같이 함수를 하나씩 작성하면 귀찮다.
#include <iostream> class Calc { int value_; public: Calc(const int &value_in) : value_{value_in} {} void add(int value) { value_ += value; } void sub(int value) { value_ -= value; } void mul(int value) { value_ *= value; } void print() { std::cout << value_ << '\n'; } }; int main() { Calc cal{ 10 }; cal.add(10); cal.sub(1); cal.mul(2); cal.print(); }체이닝을 적용하면 편하다.
#include <iostream> class Calc { int value_; public: Calc(const int &value_in) : value_{value_in} {} Calc& add(int value) { value_ += value; return *this; } Calc& sub(int value) { value_ -= value; return *this; } Calc& mul(int value) { value_ *= value; return *this; } void print() { std::cout << value_ << '\n'; } }; int main() { Calc cal{ 10 }; cal.add(10).sub(1).mul(2).print(); }
반응형