일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- implicit conversion
- UE4
- 암시적 변환
- Effective c++
- 티스토리챌린지
- virtual function
- reference
- Smart Pointer
- 비교 함수 객체
- 스마트 포인터
- lua
- 언리얼
- Vector
- 게임
- 영화 리뷰
- 참조자
- 오블완
- operator new
- 루아
- effective stl
- resource management class
- c++
- 영화
- 반복자
- more effective c++
- 상속
- 메타테이블
- 예외
- exception
- 다형성
- Today
- Total
목록implicit creation function (2)
스토리텔링 개발자
항목 6. 컴파일러가 만들어낸 함수가 필요 없으면 확실히 이들의 사용을 금해버리자. 암시적 생성 함수의 문제컴파일러가 생성하는 함수는 모두 public 멤버가 된다.이처럼 의도하지 않은 인터페이스 노출은 실수를 유발할 수 있다. private 멤버로 명시적 선언만 하여 해결private 멤버로만 처리했을 때의 문제점해당 클래스의 멤버 함수 및 프랜드(friend) 함수 내에서 private 멤버를 호출할 여지가 있다.정의를 하지 않음으로써 호출 시 링크 시점에 에러가 뜨게 한다. 링크 시점 에러를 컴파일 시점 에러로 옮기는 방법 에러 탐지는 나중으로 미루는 것보다 미리하는 것이 좋기 때문.복사 생성자, 복사 대입 연산자를 private로 선언한 부모 클래스를 상속한다.컴파일러가 생성한 복사 함수..
항목 5. C++가 은근슬쩍 만들어 호출해버리는 함수들에 촉각을 세우자. 암시적 생성 생성자, 복사 생성자, 복사 대입 연산자, 소멸자 직접 선언하지 않으면 컴파일러가 저절로 선언해준다.암시적 생성 되는 복사 관련 함수들은 얕은 복사를 한다. 암시적으로 생성된 함수들의 특징기본 생성, 소멸자기본 클래스 및 비정적 데이터 멤버의 생성자, 소멸자를 호출해주는 등의 작업을 한다.즉, 컴파일러에게 “배후의 코드”를 깔 수 있는 자리를 마련해준다.상속한 기본 클래스의 소멸자가 가상 소멸자가 아니라면 비가상 소멸자로 만들어진다.복사 생성자, 복사 대입 연산자원본 객체의 비정적 데이터를 사본 객체 쪽으로 그냥 복사한다.복사 생성자와 복사 대입 연산자는 근본적으로 동작 원리가 같다.복사 대입 연산자를 priva..