메뉴 건너뛰기

C++ 기초 - Class 맴버 변수 조작하기

Eugene 2020.01.04 03:32 조회 수 : 750

https://www.eugeneprogram.com/xe/board_SFDa73/424

 

위 Account 클래스에 balance 변수를 추가하여 잔고를 다루어보도록 하자.

여기서는 우선 저금하는 메소드 deposit()과 잔고 조회 getBalance()를 추가하여 보자.

 

Account.h

 

 

#include <string>

using namespace std;

 

class Account {

public:

    Account(std::string accountName, int initialBalance)

        :name{ accountName }  {

        if (initialBalance > 0) {

            balance = initialBalance;

        }

    }

 

    void deposit(int depositAmount) {

        if (depositAmount > 0) {

            balance = balance + depositAmount;

        }

    }

 

    int getBalance() const {

        return balance;

    }

 

    void setName(std::string accountName) {

        name = accountName;

    }

 

    std::string getName() const {

        return name;

    }

private:

    string name;

    int balance{ 0 };

};

 

 

AccountTest.cpp

 

 

#include "pch.h"

#include <iostream>

#include "Account.h"

#include <string>

 

using namespace std;

 

int main()

{

    Account account1{ "Nina Williams", 50 };

    Account account2{ "Leonardo Cohen", -7 };

 

    cout << "account1 : " << account1.getName() << " balalnce is $"

        << account1.getBalance() << endl;

    cout << "account2 : " << account2.getName() << " balalnce is $"

        << account2.getBalance() << endl << endl;

 

    cout << "Enter deposit amount for account1: ";

    int depositAmount;

    cin >> depositAmount;

    cout << "adding " << depositAmount << " to account1 balance";

    account1.deposit(depositAmount);

 

    cout << endl << endl;

 

    cout << "account1 : " << account1.getName() << " balalnce is $"

        << account1.getBalance() << endl;

    cout << "account2 : " << account2.getName() << " balalnce is $"

        << account2.getBalance() << endl << endl;

 

    cout << "Enter deposit amount for account2: ";

    cin >> depositAmount;

    cout << "adding " << depositAmount << " to account2 balance";

    account2.deposit(depositAmount);

 

    cout << endl << endl;

 

    cout << "account1 : " << account1.getName() << " balalnce is $"

        << account1.getBalance() << endl;

    cout << "account2 : " << account2.getName() << " balalnce is $"

        << account2.getBalance() << endl << endl;

}

 

Account 클래스에 정수형 변수 balance를 추가해 주었고, 생성자를 두 개의 파라미터를 받도록 수정하였다.

클래스를 생성할 때 Account의 name과 balance를 초기화 해준다.

이 때 balance가 0보다 클 때만 잔고의 금액을 해당 금액으로 초기화 한다.

잔고의 조회는 getBalance() 함수를 통하여 한다.

 

AccountTest.cpp 프로그램은 두 개의 계정을 생성하고 잔고를 초기화 해주는데, 첫 계정은 50으로 두번째 계정은 -7로 초기화를 시도한다.

결과를 보면 50으로 초기화 한 첫 계정은 잔고가 $50으로 나오지만, 두번째 계정은 -7이 아닌 $0으로 나온다.

 

프로그램에서는 첫계정과 두번째 계정에 각각 저금할 금액을 입력받아서, deposit() 메소드를 호출하여 잔고에 추가해 준다.

 

실행결과는 아래와 같다.

 

account1 : Nina Williams balalnce is $50

account2 : Leonardo Cohen balalnce is $0

 

Enter deposit amount for account1: 500

adding 500 to account1 balance

 

account1 : Nina Williams balalnce is $550

account2 : Leonardo Cohen balalnce is $0

 

Enter deposit amount for account2: 30

adding 30 to account2 balance

 

account1 : Nina Williams balalnce is $550

account2 : Leonardo Cohen balalnce is $30

 

이렇게 맴버 변수를 조작하는 것이다.