본문 바로가기

Code/C++

[C++] 계좌만들기/ private & public

계좌만들기

 

생성자를 활용

 

 

#include <iostream>

#include <string>

using namespace std;

//default constructor(account(){}):아무런 생성자, 기능을 정의하지않는다

class account {

private: //data

        string name;

        string id;

        double balance;

public: //method

        account():name("XXX"),id("0000"),balance(0){} //생성자, return타입이없다

        //initializtion list를 적극 추천한다

/*      account() {

               name = "XXX";

               id = "0000";

               balance = 0;

        }

        */

        account(string _name,string _id, double _bal): //생성자 입력받음

               name( _name),id(_id),balance(_bal){

               if (balance < 0)

                       balance = 0;

        }//예외처리

        void deposit(double _amt) {

               balance += _amt;

        }

        bool withdraw(double _amt) {

               if (balance - _amt < 0)

                       return false;

               balance -= _amt;

               return true;

        }

        void print() {

               cout << name << '\t' << id << '\t' << balance << endl;

        }

};

int main() {

        account acc1; //객체 선언과 동시에 생성자 호출

        account acc2("홍길동", "2014", 3000);

        acc1.print();

        acc1.deposit(5000);

        acc1.print(); // XXX 0000 5000

        

        if (!acc1.withdraw(10000))

               cout << "잔액이 부족합니다." << endl;

        acc1.withdraw(3000);

        acc1.print();

        return 0;

}

 

 

XXX     0000    0

XXX     0000    5000

잔액이 부족합니다.

XXX     0000    2000

 

 


 

해당 자료는 경희대학교 소프트웨어융합학과 배성호교수님 수업내용을 참조하였습니다.