#include <iostream>
#include <string.h>
#define MAX_LEN 255
using namespace std;
class Unit{
char *pszName;
public:
Unit(){
pszName=new char[MAX_LEN];
cout<<"Normal Constructor\n";
}
~Unit(){
delete [] pszName;
}
Unit(const Unit &unit);
void print(){
cout<<pszName<<endl;
}
void set(char *a){
strcpy(pszName,a);
}
};
Unit::Unit(const Unit &unit){
pszName = new char[MAX_LEN];
strcpy(pszName,"Untitled");
cout<<"Copy Constructor"<<endl;
}
int main(){
Unit Zerg;
Zerg.set("Zergling");
Zerg.print();
Unit Spawn=Zerg;
Spawn.print();
}
--------------------------------------------
생성자의 중복 원리 때문에 복사 생성자 생성과 호출이 따로 가능하다.
댓글 0
번호 | 제목 | 글쓴이 | 최근 수정일 | 조회 수 |
---|---|---|---|---|
공지 | 안내사항 | 관리자 | 2019.12.21 | 159 |
76 | 모호성 발생 | 관리자 | 2019.02.19 | 143 |
75 | 디폴트 인자 | 관리자 | 2019.02.19 | 2204 |
» | 생성자 중복 -복사 생성자 | 관리자 | 2019.02.19 | 138 |
73 | 생성자 중복 응용 | 관리자 | 2019.02.19 | 86 |
72 | 생성자 중복 2 | 관리자 | 2019.02.19 | 85 |
71 | 생성자 중복 | 관리자 | 2019.02.18 | 86 |
70 | 함수 중복-매개변수 | 관리자 | 2019.02.18 | 86 |
69 | 함수 중복 | 관리자 | 2019.02.18 | 83 |
68 | 클래스와 포인터 참조를 사용한 성적관리 프로그램 | 관리자 | 2019.02.18 | 88 |
67 | 두 수를 내림차순 정렬하기 | 관리자 | 2019.02.13 | 90 |
66 | 포인터를 이용한 성적관리 프로그램 | 관리자 | 2019.02.13 | 161 |
65 | 포인터확장 | 관리자 | 2019.02.13 | 84 |
64 | 참조반환 | 관리자 | 2019.02.12 | 84 |
63 | 참조 | 관리자 | 2019.02.12 | 82 |
62 | 객체포인터의 동적할당과 해제 | 관리자 | 2019.02.12 | 88 |
61 | new와 delete | 관리자 | 2019.02.12 | 86 |
60 | 객체 포인터 사용 | 관리자 | 2019.02.12 | 88 |
59 | 포인터 사용하기 | 관리자 | 2019.02.12 | 87 |
58 | 배열을 잘못 사용한 예 | 관리자 | 2019.02.12 | 83 |
57 | 배열기초 | 관리자 | 2019.02.11 | 86 |
56 | 배열사용하기 | 관리자 | 2019.02.11 | 86 |
55 | 클래스 깊은 복사 구현 | 관리자 | 2019.02.11 | 89 |
54 | friend 함수 사용 값이 더 큰 객체 반환 | 관리자 | 2019.02.11 | 99 |
53 | 두 사각형 넓이 더하기 friend의 유/무 | 관리자 | 2019.02.11 | 143 |
52 | friend함수 사용하기 | 관리자 | 2019.02.11 | 87 |
51 | 함수로 클래스 반환하기 | 관리자 | 2019.02.11 | 86 |
50 | 함수 입력인자로 클래스 객체 전달 | 관리자 | 2019.02.07 | 90 |
49 | 클래스 깊은복사 과정 확인 | 관리자 | 2019.02.07 | 89 |
48 | 클래스의 얕은복사 과정 확인 | 관리자 | 2019.02.07 | 93 |
47 | 컴퓨터시스템을 클래스로 구현하기 | 관리자 | 2019.01.31 | 86 |