목차
1. 객체의 생성자와 소멸자가 선언이 되어 있을때 객체가 어떤방식으로 넘어가게 되는가?
2. 객체를 인자로 넘겨줄 때에 생성자와 소멸자가 어떻게 실행이 되는가.주의사항은 무엇인가?
3. 객체의 치환
4. 객체의 치환과 생성자,소멸자의 관계
2. 객체를 인자로 넘겨줄 때에 생성자와 소멸자가 어떻게 실행이 되는가.주의사항은 무엇인가?
3. 객체의 치환
4. 객체의 치환과 생성자,소멸자의 관계
본문내용
산자 함수로만 중복될 수 있다.
·치환 연산자의 중복
- 메모리를 할당하는 경우와 같은 특별한 치환 연산이 제공되어져야 하는 경우
·치환 연산자의 중복의 특징
- 참조 매개변수의 사용 : no memory allocation
·소멸자 함수의 오 동작을 피하기 위한 방법
- 참조 매개변수를 반환 : no creation of temporal object
- 함수의 결과로서 임시 객체가 생성되는 것을 방지
4. 객체의 치환과 생성자,소멸자의 관계
· 복사 생성자
- 객체의 복사본이 만들어 질 때 어떤 것이 일어나야 할지를 정확하게 지정할 수 있다.
- 형식 => classname (const classname &ob) { // body of constructor }
· 복사 생성자의 사용 이유
- 객체가 함수의 인자로서 사용된 경우
- 포인터 변수를 가지고 있는 객체가 함수의 인자로 전달될 경우 원본의 객체가 변경
- 객체가 함수의 결과로서 반환될 때 함수에서 반환된 값을 저장하는 임시 객체를 생성
- 소멸자 함수가 동적으로 할당된 메모리를 해제하는 경우 장애가 발생할 수 있음
· C++에서 한 객체의 값이 다른 객체에서 전달되는 경우
- 치환(Assignment) => 복사 생성자가 적용되지 않는다.
- 비트 단위 복사
- 초기화(Innitialization)
- 객체가 선언문에서 다른 객체를 초기화하는데 사용될 때
e.g. myclass x = y;
- 객체가 매개변수로서 함수에게 전달될 때
e.g. func1(y)
- 함수의 반환값으로 사용되는 임시 객체가 만들어 질 때
e.g. y = func2();
·치환 연산자의 중복
- 메모리를 할당하는 경우와 같은 특별한 치환 연산이 제공되어져야 하는 경우
·치환 연산자의 중복의 특징
- 참조 매개변수의 사용 : no memory allocation
·소멸자 함수의 오 동작을 피하기 위한 방법
- 참조 매개변수를 반환 : no creation of temporal object
- 함수의 결과로서 임시 객체가 생성되는 것을 방지
4. 객체의 치환과 생성자,소멸자의 관계
· 복사 생성자
- 객체의 복사본이 만들어 질 때 어떤 것이 일어나야 할지를 정확하게 지정할 수 있다.
- 형식 => classname (const classname &ob) { // body of constructor }
· 복사 생성자의 사용 이유
- 객체가 함수의 인자로서 사용된 경우
- 포인터 변수를 가지고 있는 객체가 함수의 인자로 전달될 경우 원본의 객체가 변경
- 객체가 함수의 결과로서 반환될 때 함수에서 반환된 값을 저장하는 임시 객체를 생성
- 소멸자 함수가 동적으로 할당된 메모리를 해제하는 경우 장애가 발생할 수 있음
· C++에서 한 객체의 값이 다른 객체에서 전달되는 경우
- 치환(Assignment) => 복사 생성자가 적용되지 않는다.
- 비트 단위 복사
- 초기화(Innitialization)
- 객체가 선언문에서 다른 객체를 초기화하는데 사용될 때
e.g. myclass x = y;
- 객체가 매개변수로서 함수에게 전달될 때
e.g. func1(y)
- 함수의 반환값으로 사용되는 임시 객체가 만들어 질 때
e.g. y = func2();