How do I implement the builder pattern in financial systems with C++?

The Builder Pattern is a design pattern that allows for the step-by-step construction of complex objects. In financial systems, it's particularly useful for creating objects like Transactions, Accounts, and Reports, which can have many parameters and variations.
builder pattern, financial systems, C++, object construction, design patterns
class Account {
public:
    std::string accountNumber;
    double balance;

    Account(std::string number, double balance) : accountNumber(number), balance(balance) {}
};

class AccountBuilder {
private:
    std::string accountNumber;
    double balance = 0.0;

public:
    AccountBuilder& setAccountNumber(const std::string& number) {
        accountNumber = number;
        return *this;
    }

    AccountBuilder& setBalance(double bal) {
        balance = bal;
        return *this;
    }

    Account build() {
        return Account(accountNumber, balance);
    }
};

int main() {
    AccountBuilder builder;
    Account myAccount = builder.setAccountNumber("123456")
                               .setBalance(1000.0)
                               .build();

    std::cout << "Account Number: " << myAccount.accountNumber << "\n";
    std::cout << "Balance: " << myAccount.balance << "\n";
    return 0;
        

builder pattern financial systems C++ object construction design patterns