포스트를 만든 목적

Effective C# 을 읽고 내가 공부하기 위해서 만들었다.

내용

관련 링크

여기서 말하는 연쇄적인 생성자 호출이란, 생성자가 호출하는 생성자를 뜻한다.

C++ 에선 이런 경우, private 로  함수 하나 선언해서, 생성자에서 호출 해서 구현하고 있다.

언제 생성자 내에서 생성자를 사용하는게 좋은가?

  • 생성자들 구현 코드가 중복될 경우(생성자들의 교집합을 한 생성자에 작성하고, 이를 수행한다.) - 코드 생략

주의해야 할 점은 무엇인가?

  • 생성자 내에서 연쇄적으로 호출된 생성자가 또 다시 다른 생성자를 호출하는 행동은 주의해야 한다. 나중에 어떤 생성자를 거쳤는지 알기 힘들기 때문이다.

클래스의 내부 동작 순서를 알면, 이해가 좀 더 쉽게 될 것이다.

클래스의 내부 동작 순서는 어떻게 되는가?

  1. static 멤버 변수가 있다면, 이를 0으로 초기화
  2. static 멤버 변수가 있고, 선언시 초기화 루틴이 있다면 수행
  3. 기반 클래스가 있다면, 기반클래스의 static 생성자 수행
  4. static 생성자 수행
  5. 멤버 변수가 있다면, 0으로 초기화
  6. 멤버 변수가 있고, 선언시 초기화 루틴이 있다면, 수행
  7. 기반 클래스가 있다면, 기반 클래스의 생성자 수행
  8. 생성자 수행

결론

  • 생성자가 많고, 같은 부분이 겹친다면, 무조건 쓰자.

여담

  • 무척 졸리다!
  • 위에 "위임 생성자" 라고 표기를 했는데, 마땅히 대체될 명사가 없어, "류광님의 블로그"에서 쓰인데로 썻다.


  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기