계좌만들기
생성자를 활용
#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
해당 자료는 경희대학교 소프트웨어융합학과 배성호교수님 수업내용을 참조하였습니다.
'Code > C++' 카테고리의 다른 글
[C++] class 생성/ this pointer/ 함수오버로딩/ 동적할당 (0) | 2019.11.11 |
---|---|
[C++] (example) private& public/ 계좌만들기/ 분자& 분모 (0) | 2019.11.02 |
[C++] class & object/ private & public (0) | 2019.11.02 |
[C++] (example) Vector Matrix (0) | 2019.10.19 |
[C++] Vector Matrix (0) | 2019.10.18 |