struct Transaction
{
const int txID;
const int fromID;
const int toID;
const int value;
}
class TransactionBuilder
{
private:
int _fromID;
int _toID;
int _value;
public:
Transaction build()
{
int txID = _fromID ^ _toID ^ _value;
return Transaction {txID, _fromID, _toID, _value};
}
TransactionBuilder& setFromID(int fromID)
{
_fromID = fromID;
return *this;
}
TransactionBuilder& settoID(int toID)
{
_toID = toID;
return *this;
}
TransactionBuilder& setvalue(int value)
{
_value = value;
return *this;
}
}
int main()
{
Transaction ts = TransactionBuilder().
setFromID(10).
settoID(20).
setvalue(30).
build();
}
this 포인터를 이용한 빌더 패턴이다.
set 함수들의 반환이 객체의 참조를 반환하는데 이때 현재 객체의 포인터 지정자를 반환하여 자기 자신을 반환하는 원리이다.
'Program > C,C++' 카테고리의 다른 글
| 연산자 오버로딩 (0) | 2023.07.02 |
|---|---|
| 멤버 함수 포인터 (0) | 2023.06.28 |
| const 멤버 함수 (0) | 2023.06.28 |
| Class 전방 선언 (0) | 2023.06.26 |