Microsoft PowerPoint - additional-11_13l.ppt [호환 모드]

Similar documents
PowerPoint Template

C++ Programming

3장. Hello World

C++ Programming

Microsoft PowerPoint - 09-C++-7-Template.pptx

Microsoft PowerPoint - additional01.ppt [호환 모드]

윤성우의 열혈 TCP/IP 소켓 프로그래밍

Microsoft PowerPoint - additional08.ppt [호환 모드]

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

Microsoft PowerPoint - Chapter 1-rev

PowerPoint Template

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

PowerPoint Template

Microsoft PowerPoint - Chapter 6.ppt

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - additional07.ppt [호환 모드]

C++ Programming

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

Slide 1

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - Chapter 10.ppt

Microsoft PowerPoint - additional06.ppt [호환 모드]

Microsoft PowerPoint - Chap12-OOP.ppt

설계란 무엇인가?

chap10.PDF

PowerPoint Template

080629_CFP °ø°³¿ë.hwp

슬라이드 1

(Microsoft Word - \301\337\260\243\260\355\273\347.docx)

Microsoft PowerPoint - 8ÀÏ°_Æ÷ÀÎÅÍ.ppt

Microsoft PowerPoint - additional03.ppt [호환 모드]

Microsoft PowerPoint - [2009] 02.pptx

PowerPoint Presentation

C프로-3장c03逞풚

슬라이드 1

쉽게 풀어쓴 C 프로그래밍

C++ Programming

쉽게 풀어쓴 C 프로그래밍

(Microsoft PowerPoint - 07\300\345.ppt [\310\243\310\257 \270\360\265\345])

슬라이드 1

(Microsoft PowerPoint - 11\300\345.ppt [\310\243\310\257 \270\360\265\345])

윤성우의 열혈 TCP/IP 소켓 프로그래밍

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

설계란 무엇인가?

<432B2BC7C1B7CEB1D7B7A1B9D628BABBB9AE5FC3D6C1BE295B315D2E687770>

The C++ Programming Language 4 장타입과선언 4.11 연습문제 Hello,world! 프로그램을실행시킨다. 프로그램이컴파일되지않으면 B3.1 을참고하자. #include<iostream> //#include 문, 헤더파일, 전처리지시

1. 표준입출력 C++ : C의모든라이브러리를포함 printf, scanf 함수사용가능예 : int, double, 문자열값을입력받고출력하기 #include <cstdio> int ivar; double dvar; char str[20]; printf("int, dou

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

PowerPoint 프레젠테이션

1. 상속의기본개념 다음과같은문제를위한클래스설계 자동차 속성 : 색상, 배기량, 현재속도 메서드 : 가속하라, 멈춰라, 시동을켜라 트럭 속성 : 색상, 배기량, 현재속도, 최대중량 메서드 : 가속하라, 멈춰라, 시동을켜라 택시 속성 : 색상, 배기량, 현재속도, 요금,

4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문

설계란 무엇인가?

Visual C++ & OOP Fundamentals ( 2005/1/31~2005/2/4)

02장.배열과 클래스

1. 기본형의형변환복습 C/C++ 형변환의종류 자동형변환 ( 묵시적형변환 ) 강제형변환 ( 명시적형변환 ) 기본형의자동형변환의예 1. 배열 to 포인터변환 배열명은해당배열의첫번째원소의 주소로변환됨 int ary[10]; int *pary = ary; 2. 함수 to 포

The C++ Programming Language 5 장포인터, 배열, 구조체 5.9 연습문제 다음의선언문을순서대로작성해보자. 문자에대한포인터, 10개정수의배열, 10개정수의배열의참조자, 문자열의배열에대한포인터, 문자에대한포인터에대한포인터, 상수정수, 상수

02 C h a p t e r Java

3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

프입2-강의노트-C++기초

설계란 무엇인가?

int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \

JAVA PROGRAMMING 실습 09. 예외처리

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

PowerPoint Presentation

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

JAVA PROGRAMMING 실습 08.다형성

Microsoft PowerPoint - chap03-변수와데이터형.pptx

PowerPoint Presentation

PowerPoint 프레젠테이션

C 언어 프로그래밊 과제 풀이

BACK TO THE BASIC C++ 버그 헌팅: 버그를 예방하는 11가지 코딩 습관

1. 클래스와배열 int 형배열선언및초기화 int ary[5] = 1, 2, 3, 4, 5 ; for (int i = 0; i < 5; i++) cout << "ary[" << i << "] = " << ary[i] << endl; 5 장클래스의활용 1

C++ Programming

PowerPoint 프레젠테이션

12 장파일입출력 파일입출력의기초파일열기, 사용하기, 닫기파일입출력모드문자단위파일입출력텍스트파일과이진파일 read, write 함수에의한이진파일입출력임의접근입출력스트림상태입출력연산자오버로딩과파일입출력 C++ 프로그래밍입문

: 1 int arr[9]; int n, i; printf(" : "); scanf("%d", &n); : : for(i=1; i<10; i++) arr[i-1] = n * i; for(i=0; i<9; i++) if(i%2 == 1) print

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

OCW_C언어 기초

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

11장 포인터

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,

Microsoft PowerPoint - chap10-함수의활용.pptx

Slide 1

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

03장.스택.key

Cluster management software

PowerPoint Presentation

예외 예외정의예외발생예외처리예외전파 단정 단정의선언 단정조건검사옵션 2

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>


PowerPoint 프레젠테이션

Microsoft PowerPoint - 05장(함수) [호환 모드]

C++ Programming

프입2-강의노트-const-friend-static

C++-¿Ïº®Çؼ³10Àå

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

Transcription:

11.string 클래스디자인로딩 표준 string 클래스 사용자정의클래스 Jong Hyuk Park

표준 string 클래스 Jong Hyuk Park

string 클래스 C++ 표준라이브러리에서정의된문자열처리클래스 #include <iostream> #include <string> using std::endl; using std::cout; using std::cin; using std::string; int main() string str1="good "; string str2="morning"; string str3=str1+str2; cout<<str1<<endl; t cout<<str2<<endl; cout<<str3<<endl; str1+=str2; if(str1==str3) //str1과 str3의내용비교. cout<<"equal!"<<endl; string str4; cout<<" 문자열입력: "; cin>>str4; cout<<" 입력한문자열 : "<<str4<<endl; return 0; Good morning Good morning equal! 문자열입력 : Hello! 입력한문자열 : Hello!

사용자정의 string 클래스 Jong Hyuk Park

string 클래스사용자구현 앞예의표준라이브러리를이용한 string 클래스의사용자구현 string 클래스사용자구현 생성자, 소멸자, 복사생성자정의 +, =, +=, ==, <<, >> 연산자오버로딩

사용자정의 string 클래스, 생성자, 소멸자 #include <iostream> using std::endl; using std::cout; using std::cin; using std::ostream; t using std::istream; class string int len; // null 문자를포함하는문자열의길이 char* str; public: string(const char* s=null); string(const string& s); ~string(); ; string& operator=(const string& s); string& operator+=(const string& s); bool operator==(const string& s); string ti operator+(const tstring& ti s); friend ostream& operator<<(ostream& os, const string& s); friend istream& operator>>(istream& is, string& s); // 생성자 string::string(const char* s) len=(s!=null? strlen(s)+1 : 1); str=new char[len]; if(s!=null) strcpy(str, s); // 복사생성자 string::string(const string& s) len=s.len; str=new char[len]; strcpy(str, s.str); // 소멸자 string::~string() delete []str;

연산자오버로딩 string& string::operator=(const string& s) delete []str; len=s.len; str=new char[len]; strcpy(str, s.str); return *this; string& string::operator+=(const string& s) len=len+s.len-1; char* tstr=new char[len]; strcpy(tstr, str); delete []str; strcat(tstr, t(tst s.str); str=tstr; return *this; bool string::operator==(const string& s) return strcmp(str, s.str)? false:true; string string::operator+(const string& s) char* tstr=new char[len+s.len-1]; strcpy(tstr, str); strcat(tstr, s.str); string temp(tstr); delete []tstr; return temp; ostream& operator<<(ostream& os, const string& s) os<<s.str; return os; istream& operator>>(istream& is, string& s) char str[100]; is>>str; s=string(str); return is;

실행결과 int main() string str1="good "; string str2="morning"; string str3=str1+str2; cout<<str1<<endl; cout<<str2<<endl; cout<<str3<<endl; str1+=str2; if(str1==str3) //str1 과 str3 의내용비교. cout<<"equal!"<<endl; string str4; Good morning Good morning equal! 문자열입력 : Hello! 입력한문자열 : Hello! cout<<" 문자열입력 : "; cin>>str4; cout<<" 입력한문자열 : "<<str4<<endl; return 0;

12. 템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park

함수템플릿 Jong Hyuk Park

함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n :n; double abs(double n) 함수 return n < 0? -n : n; // 정수형인수의 abs() 함수 // double 형인수의 abs() 함수의인수와반환형의자료형만이다르고함수내부의프로그램코드는모두같음 템플릿함수를사용하여함수정의는한번만하고필요시자료형에따라각각적용 11

함수템플릿정의 함수템플릿은 template 키워드, typename( 또는 class) 템플릿자료형인수들를선언 템플릿의자료형이되어템플릿함수의가인수나반환형을위한자료형으로사용 template <typename Type1 [, typename Type 2 ]> 반환형함수명 ( 가인수리스트 ) 함수호출시에사용되는실인수, 반환형의자료형을컴파일러가템플릿함수의자료형인수에대입하여특정함수를생성하고호출 12

함수템플릿사용예 template <class T> T abs(t n) // T 형가인수, 반환형을갖는템플릿함수 abs() 정의 return n < 0? n : n; main() int i = abs(123); // int abs(int n) 을생성하고호출 double d = abs(-123.45); // double abs(double n) 을생성하고호출 => 함수호출시에사용된실인수, 반환형의자료형에따라두개의 abs() 함수를생성하고호출 int abs(int n) // int i = abs(123); 호출시생성 return n < 0? n : n; double abs(double n) // double d = abs(-123.45); 호출시생성 return n < 0? n : n; 13

템플릿자료형인수사용예 템플릿함수의정의시사용되는템플릿의자료형인수는함수의가인수로최소한한번이상사용되어야함 template <typenamet> T func1(t *a); // 올바름 template <typename T> T func2(t a, T b); // 올바름 template <typename T, typename T> T func2(t a, T b); // 에러, T가중복선언 template <typename T, typename U> Tf func2(t a, Ub) b); // 올바름 template <typename T, typename U, typename V> U func2(t a, V b); // 에러, U가가인수로사용되지않음 14

함수템플릿사용예 1 #include <iostream> using std::endl; using std::cout; template <typename Type> Type min(type a, Type b) // 템플릿함수 min() 정의 return a < b? a : b; int main() // int min(int,int) 템플릿함수생성, 호출 cout << min(88,24) 882 << endl; // double min(double,double) 템플릿함수생성및호출 cout << min(1.234,7.56) << endl; 24 1.234 return 0; min(88,24) 의호출시에템플릿의자료형인수 Type 이 int 로치환된 int min(int, int) 인함수가 생성되고, min(1.234, 7.56) 의호출시에는 double min(double, double) 인함수가생성 15

함수템플릿사용예 2 #include <iostream> using std::endl; using std::cout; template <typename T> // 함수템플릿정의 void ShowData(T a, T b) cout<<a<<endl; cout<<b<<endl; int main(void) ShowData(1, 2); ShowData(3, 2.5); //! error #include <iostream> using std::endl; using std::cout; template <typename T1, typename T2> // 함수템플릿정의 void ShowData(T1 a, T2 b) cout<<a<<endl; cout<<b<<endl; int main(void) ShowData(1, 2); ShowData(3, 2.5); return 0; return 0; 16

함수템플릿의특수화 #include <iostream> using std::endl; using std::cout; template <typename T> // 함수템플릿정의 int SizeOf(T a) return sizeof(a); int main(void) int i=10; double e=7.7; char* str="good morning!"; cout<<sizeof(i)<<endl; cout<<sizeof(e)<<endl; cout<<sizeof(str)<<endl; return 0; #include <iostream> using std::endl; using std::cout; template <typename T> // 함수템플릿정의 int SizeOf(T a) return sizeof(a); template<> // 함수템플릿정의 int SizeOf(char* a) return strlen(a); int main(void) int i=10; double e=7.7; 7; char* str="good morning!"; cout<<sizeof(i)<<endl; cout<<sizeof(e)<<endl; cout<<sizeof(str)<<endl; return 0; 17

클래스템플릿 Jong Hyuk Park

클래스템플릿 클래스템플릿 한번의클래스정의로서로다른자료형에대해적용하는클래스 class Counter int value; class Counter double value; public: Counter(int n) value = n; public: Counter(double n) value = n; Counter() value = 0; Counter() value = 0; int val() return value; double val() return value; void operator ++() ++value; void operator --() --value; void operator ++() ++value; void operator --() --value; ; ; 19

클래스템플릿정의및생성 template <typename Type1 [, typename Type 2 ]> class 클래스명 클래스명 < 자료형 [, 자료형, ]> 객체명 ; template <typename T> class Counter T value; public: Counter(T n) value = n; Counter() value = 0; T val() return value; void operator ++() ++value; void operator --() --value; Counter <int> oi; Counter <double> od; 20

클래스템플릿사용예 1 #include <iostream> using std::endl; using std::cout; template <typename T> class Counter T value; public: Counter(T n) value = n; Counter() value = 0; T val() return value; void operator ++() ++value; void operator --() --value; ; int main(void) Counter <int> icnt; Counter <double> dcnt(3.14); Counter <char> ccnt('c'); ++icnt; --dcnt; ++ccnt; cout << "++icnt : " << icnt.val() << endl; cout << "--dcnt : " << dcnt.val() << endl; cout << "++ccnt : " << ccnt.val() << endl; #include <iostream> using std::endl; using std::cout; template <typename T> class Counter T value; public: Counter(T n); Counter() value = 0; T val(); void operator ++(); ++value; void operator --() --value; ; template <typename T> Counter<T>::Counter(T C n) value = n; template <typename T> T Counter<T>::val() return value; int main(void) Counter <int> icnt; Counter <double> dcnt(3.14); Counter <char> ccnt('c'); 21 return 0; ++icnt; --dcnt; ++ccnt; cout << "++icnt : " << icnt.val() << endl; cout << "--dcnt : " << dcnt.val() << endl; cout << "++ccnt : " << ccnt.val() << endl; return 0;

클래스템플릿사용예 2 #include <iostream> using std::endl; using std::cout; template <typename S, typename L> class Size int s; int l; public: Size() s = sizeof(s); l = sizeof(l); void print() cout << s << ',' << l << endl; ; int main(void) Size <char, long int> a; Size <float, double> b; cout << "char,long int: "; a.print(); cout << "float,double : "; b.print(); 22 return 0;

클래스템플릿의상속 클래스템플릿도일반클래스와같이상속 베이스클래스인클래스템플릿을일반클래스가파생클래스가되어상속받는경우 베이스클래스인클래스템플릿으로부터생성된클래스를상속 클래스템플릿을생성하지않고전체를상속받으면에러 클래스템플릿인베이스클래스로부터클래스템플릿인파생클래스가상속받는경우 template <typename T> class Base ; class Derive : public Base<int> template <typename T> class Base ; template <typename U> class Derive : public Base<U> 23

클래스템플릿의상속예 #include <iostream> using std::endl; using std::cout; template <typename T> class Area // 베이스클래스템플릿 T side1, side2; public: Area(T s1, T s2) // 생성자 side1 = s1; side2 = s2; void getside(t &s1, T &s2) s1 = side1; s2 = side2; ; template <typename U> class Rectangle : public Area<U> // 파생클래스템플릿 public: Rectangle(U s1, U s2) : Area<U>(s1,s2) // 생성자 /* no operation */ U getarea(void) U s1, s2; int main(void) Rectangle <int> ir(3,14); Rectangle <double> dr(2.5, 7.3); cout << "int area : " << ir.getarea() << endl; cout << "double area : " << dr.getarea() << endl; return 0; int area : 42 double area : 18.25 클래스템플릿인파생클래스 Rectangle 이또다른 클래스템플릿인베이스클래스 Area 로부터상속받 는예이다. Rectangle 파생클래스템플릿는 Area 베이스클래스템플릿전체를상속받는다. 24 ; getside(s1,s2); return s1 * s2;

13. 예외처리 기존의예외처리방식 C++ 예외처리 Jong Hyuk Park

예외처리소개 예외처리 (exception handling) 프로그램의비정상적인상황발생시처리하는과정 대개의경우예외처리하지않는경우실행에러발생 26

예외처리없는코드예 #include <iostream> using std::endl; using std::cout; using std::cin; int main(void) int a, b; 실행결과 1 두개의숫자입력 : 5 2 a/b의몫 : 2 a/b 의나머지 : 1 cout<<" 두개의숫자입력 : "; cin>>a>>b; cout<<"a/b 의몫 : "<<a/b<<endl; cout<<"a/b 의나머지 : "<<a%b<<endl; return 0; 실행결과 2 두개의숫자입력 : 5 0 <-!!! 실행에러발생 27

전통적스타일예외처리코드예 #include <iostream> using std::endl; using std::cout; using std::cin; int main(void) int a, b; cout<<" 두개의숫자입력 : "; cin>>a>>b; if(b==0) cout<<" 입력오류! 다시실행하세요."<<endl; else cout<<"a/b 의몫 : "<<a/b<<endl; cout<<"a/b 의나머지 : "<<a%b<<endl; 실행결과 1 두개의숫자입력 : 5 2 a/b의몫 : 2 a/b 의나머지 : 1 실행결과 2 두개의숫자입력 : 5 0 입력오류! 다시실행하세요. return 0; 28

C++ 예외처리 Jong Hyuk Park

C++ 예외처리 (1) try & catch try /* 예외발생예상지역 */ catch( 처리되어야할예외의종류 ) throw /* 예외를처리하는코드가존재할위치 */ throw ex; // ex 를가리켜보통은그냥 예외 라고표현을한다. // 예외상황발생통보시사용 30

C++ 예외처리 (2) 31

C++ 예외처리코드예 1 #include <iostream> using std::endl; using std::cout; using std::cin; int main(void) int a, b; 실행결과 1 두개의숫자입력 :52 a/b의몫 : 2 a/b의나머지 : 1 실행결과 2 두개의숫자입력 :50 0 입력. 입력오류! 다시실행하세요. cout<<" 두개의숫자입력 : "; cin>>a>>b; try if(b==0) throw b; cout<<"a/b의몫 : "<<a/b<<endl; cout<<"a/b의나머지 : "<<a%b<<endl; catch(int exception) cout<<exception<<" 입력."<<endl; cout<<" 입력오류! 다시실행하세요."<<endl; return 0; 32

C++ 예외처리코드예 2 #include <iostream> using std::endl; using std::cout; using std::cin; 두개의숫자입력 : 5 0 0 입력. 입력오류! 다시실행하세요. int divide(int a, int b); // a/b 의몫만반환 int main(void) int a, b; cout<<" 두개의숫자입력 : "; cin>>a>>b; try cout<<"a/b의몫 : "<<divide(a, b)<<endl; catch(int exception) return 0; cout<<exception<<" 입력."<<endl; cout<<" 입력오류! 다시실행하세요."<<endl; int divide(int a, int b) if(b==0) throw b; return a/b; 33

스택풀기 (Stack Unwinding) 34

C++ 예외처리코드예 예외가처리되지않으면 stdlib.h에선언되어있는 abort 함수의호출에의해프로그램종료 전달되는예외명시 그이외의예외가전달되면 abort 함수의호출 int fct(double d) throw (int, double, char *)..... 35

36 C++ 예외처리코드예 3 #include <iostream> using std::endl; using std::cout; using std::cin; int divide(int a, int b); // a/b의몫만반환 int main(void) int a, b; cout<<" 두개의숫자입력 : "; cin>>a>>b; try cout<<"a/b의몫 : "<<divide(a, b)<<endl; catch(char exception) cout<<exception<<" 입력."<<endl; cout<<" 입력오류! 다시실행하세요."<<endl; return 0; int divide(int a, int b) if(b==0) throw b; //!! 에러, int 형 b 전달 return a/b;

C++ 예외처리코드예 4 #include <iostream> using std::endl; using std::cout; using std::cin; int main(void) int num; cout<<"input number: "; cin>>num; try if(num>0) throw 10; // int형예외전달. else throw 'm'; // char 형예외전달. catch(int exp) cout<<"int형예외발생 "<<endl; catch(char exp) cout<<"char형예외발생 "<<endl; return 0; 실행결과 1 input number: 10 int형예외발생실행결과 2 input number: -10 char형예외발생 37

#include <iostream> using std::endl; using std::cout; using std::cin; 예외처리클래스예 char* account="1234-5678"; // 계좌번호 int sid=1122; // 비밀번호 int balance=1000; // 잔액. class AccountExpt char acc[10]; int sid; public: AccountExpt(char* str, int id) strcpy(acc, str); sid=id; int main(void) char acc[10]; int id; int money; try cout<<" 계좌번호입력 : "; cin>>acc; cout<<" 비밀번호 4 자리입력 : "; cin>>id; if(strcmp(account, acc) sid!=id) throw AccountExpt(acc, id); cout<<" 출금액입력 : "; cin>>money; if(balance<money) throw money; void What() balance-=money; cout<<" 계좌번호 : "<<acc<<endl; cout<<" 잔액 : "<<balance<<endl; cout<<" 비밀번호 : "<<sid<<endl; catch(int money) ; cout<<" 부족금액: "<<money-balance<<endl; catch(accountexpt& expt) cout<<" 다음입력을다시한번확인하세요 "<<endl; expt.what(); return 0; 38

Jong Hyuk Park