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

+ Recent posts