5 Kim Yeon Hee yhkim 95gmail com 5

  • Slides: 11
Download presentation
5장. 복사 생성자 Kim. Yeon. Hee yhkim 95@gmail. com

5장. 복사 생성자 Kim. Yeon. Hee yhkim 95@gmail. com

5. 1 C스타일/C++스타일 초기화 1. 두 가지 형태의 초기화 int main(void) { { int

5. 1 C스타일/C++스타일 초기화 1. 두 가지 형태의 초기화 int main(void) { { int val 1=20; int val 1(20); AAA a 1=10; AAA a 1(10); . . C++ Programming

Deep Copy 실습(소스) #include <iostream> int main(void) { Name. Card Lee("Hong Kil Dong", "333

Deep Copy 실습(소스) #include <iostream> int main(void) { Name. Card Lee("Hong Kil Dong", "333 -3333", "서울", "manager"); Lee. Show. Data(); using namespace std; class Name. Card { private: public: char *name; *ph; *ad; *job; Name. Card Lee 2( Lee ); Lee 2. Show. Data(); Name. Card(char* Nname, char* Nph, char* Nad, char* Njob) { name=new char[strlen(Nname)+1]; strcpy(name, Nname); return 0; } ph=new char[strlen(Nph)+1]; strcpy(ph, Nph); ad=new char[strlen(Nad)+1]; strcpy(ad, Nad); } job=new char[strlen(Njob)+1]; strcpy(job, Njob); Name. Card( const Name. Card& p ) { name = new char[strlen(p. name) +1 ]; strcpy(name, p. name); ph = new char[strlen(p. ph) + 1 ]; strcpy(ph, p. ph); ad = new char[strlen(p. ad) + 1]; strcpy(ad, p. ad); } void Show. Data() { } ~Name. Card() { }; } job = new char[strlen(p. job) + 1 ]; strcpy(job, p. job); cout<<"이 름 : "<<name<<endl; cout<<"전화번호 : "<<ph<<endl; cout<<"주 소 : "<<ad<<endl; cout<<"직 급 : "<<job<<endl; cout<<endl; delete []name; []ph; []ad; []job; C++ Programming

5 -5 복사 생성자의 호출 시기 5. 5 복사 생성자의 호출시기 2. Case 1

5 -5 복사 생성자의 호출 시기 5. 5 복사 생성자의 호출시기 2. Case 1 class AAA { int val; public: AAA(int i){ val=i; } AAA(const AAA& a){ cout<<"AAA(const A& a) 호출"<<endl; val=a. val; } void Show. Data(){ cout<<"val: "<<val<<endl; } }; int main() { AAA obj 1(10); AAA obj 2=obj 1; //obj 2(obj 1); 과 같다 return 0; }