항목 12. 생성자에서 치환보다는 초기화를 사용한다.

이유. 2008/05/31 12:57 수정
1. const와 레퍼런스 멤버들을 초기화 할 수 없다,
1. const 멤버 객체와 와 레퍼런스 멤버 객체는 초기화 순간에만 초기화를 할수 있다.
2. 초기화 보다 연산이 한단계 더 많아 진다.
2. 대입연산자(치환)은 이미 초기화 순서를 지나친것이기 때문에 1단계 많은 연산을 하게 되는것이다.

참조

1 클래스의 생성은 이 두단계를 거친다.
첫번째. 데이터 멤버의 초기화
두번째. 호출된 생성자의 코드가 실행된다.

2. const와 레퍼런스는 항상 생성자 초기화에서만 할수 있다.
3. 클래스내부에선 정적상수만이 초기화 할수 있다


해결 방법
1. 대입연산자 보다는 멤버초기화 리스트 구역을 사용 한다.

주의점
1. 생성자 초기화 중, 너무 많은 멤버 변수들을 초기화 할 경우 오히려 가독성과 오류 발생 요인이 된다.

주의점 타파 방법
1. 초기화 화가 필요한 변수를 초기화 하는 함수를 만든다.
2. private 에 올린다.
3. 생성자에서 const와 레퍼런스를 초기화 시킨다.
4. 생성자 내부에서 초기화 함수를 실행시킨다.

개인적인 생각
- 부분의 최적화는 용량이 큰 객체를 초기화를 여러개 할때 더욱 빛을 바랠수 있다고 생각된다.
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기