코드질문입니다!! 오류좀 잡아주세요 친절한 설명++해주심 감사해요.ㅠ
미련곰탱이
은행 입출금 전반적인건 컨트롤 클래스 보심아실꺼에요.
crtisvalidheappointer(puserdata)오류창이 떠요..ㅠ 무슨 잘못을 저질렀을까요..ㅠ이 소스의 에러이유
#include iostream
using namespace std;
enum {new_1=1, in_2, out_3, join_4, exit_5};
class bank{//베이스 클래스
private:
int id;
char* name;
int money;
public:
bank(){};
bank(int id, char* name, int money=0){
this-id=id;
this-name=new char[strlen(name)+1];
this-money=money;
strcpy(name,name);
}
bank(const bank& p){
this-id=p.id;
this-name=new char[strlen(p.name)+1];
this-money=p.money;
strcpy(name,p.name);
}
~bank(){
delete []name;
}
void inmoney(int money){
this-money+=money;
}
void outmoney(int money){
this-money-=money;
}
int getid()const{return id;}
char getname()const{return *name;}
int getmoney()const{return money;}
void showdata();
};
void bank::showdata(){
cout-----------------------endl;
cout계좌번호 : idendl;
cout이 름 : nameendl;
cout잔 액 : moneyendl;
cout-----------------------endl;
}
//베이스 클래스 끝
class bankmanager:public bank{ c bank{ //컨트롤 클래스 시작
private:
int array; // 계좌 지정 정적변수
bank* list[100]; //포인터배열 100개 선언
public:
bankmanager();
void new(); //계좌 개설
void view();//입력을 받지 않는 매뉴 호출 함수
void in(); //입금
void out(); //출금
void join();//잔액 조회
};
bankmanager::bankmanager(){array=1;}
//int bankmanager::array(1);
void bankmanager::view(){ //메뉴 출력 함수
cout1. 계좌 개설endl;
cout2. 입 금endl;
cout3. 출 금endl;
cout4. 전체 고객 잔액 조회endl;
cout5. 종 료endl;
}
void bankmanager::new(){ //계좌 계설 함수
char _name[20];
cout당신의 계좌는 array 입니다.endl;
cout당신의 이름을 입력하세요.endl;
cin_name; coutendl;
list[array++]=new bank(array,_name);
}
void bankmanager::join(){ //전체 고객정보
for(int i(0); iarray; i++){
list[i]-showdata();
}
}
void bankmanager::in(){ //입금 함수
int c(0),d(0);
cout입금하실 계좌번호를 입력해 주세요.endl;
cinc;
if(c=array){
for(int i(0); iarray; i++){
if(list[i]-getid() == c){
cout입금하실 금액을 입력해주세요.endl;
cind;
list[i]-inmoney(d);
cout입금 완료endl;
return;
}
}
} else if (carray){
cout입력하신 계좌번호는 잘못된 계좌번호입니다. 다시 한번 확인해 주세요.endl;
return;
}
cout입력하신 계좌번호는 잘못된 계좌번호입니다. 다시 한번 확인해 주세요.endl;
}
void bankmanager::out(){ //출금 함수
int c(0),d(0);
cout출금하실 계좌번호를 입력해 주세요.endl;
cinc;
if(c=array){
for(int i(0); iarray; i++){
if(list[i]-getid() == c){
cout출금하실 금액을 입력해주세요.endl;
cind;
list[i]-outmoney(d);
cout입금 완료endl;
return;
}
}
} else if (carray){
cout입력하신 계좌번호는 잘못된 계좌번호입니다. 다시 한번 확인해 주세요.endl;
return;
}
cout입력하신 계좌번호는 잘못된 계좌번호입니다. 다시 한번 확인해 주세요.endl;
}
int main()
{
while (1){
int choice(0);
bankmanager manager;
manager.view();
cout메뉴를 선택하세요.endl;
cinchoice;
switch(choice){ //메뉴 선택하기 위한 스위치문.
case new_1 : //계좌개설
manager.new();
break;
case in_2 : // 입금
manager.in();
break;
case out_3 : // 출금
manager.out();
break;
case join_4 : //고객정보
manager.join();
break;
case exit_5 ://종료
cout안녕히 가세요.endl;
return 0;
break;
default :
cout입력이 잘못 되었습니다.endl;
break;
}
}
return 0;
}