C++/Class
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(); }
'C++ > Class' 카테고리의 다른 글
C++ 정적 멤버 변수 (Static Member Variable) (0) | 2021.03.15 |
---|---|
C++ static (Class) (0) | 2021.03.15 |
C++ this (0) | 2021.03.15 |
C++ 소멸자 (Destructor) (0) | 2021.03.15 |
C++ 변환 생성자(Converting Constructor) (0) | 2021.03.15 |