같은편
홍익대 게임소프트웨어전공의 프로그래밍 단련 공간
같은편
깃허브 주소
https://github.com/madongchan
GitHub 아이콘
  • 분류 전체보기 (85)
    • 게임 프로그래밍 패턴 (2)
    • C# 프로그래밍 (26)
    • C++ 프로그래밍 (32)
      • 함수 (8)
      • 클래스 (22)
    • 알고리즘 공부 (13)
      • 프로그래머스 사이트 문제(C++) (0)
      • codingame 사이트 문제(C#) (11)
    • 유니티엔진 - 게임 공부 (3)
    • 언리얼엔진 - 게임 공부 (4)
    • 쓸모 있을 수 있는 팁 (2)
    • 일상이야기 (3)

최근 댓글

태그

  • C#
  • 객체
  • 스레드
  • 최단 경로
  • 람다식
  • 언리얼엔진4
  • 함수
  • task
  • 탐욕 알고리즘
  • 클래스
  • queue
  • 예외 처리
  • 문제 풀이
  • 언리얼
  • 언리얼엔진
  • DFS
  • 비동기
  • 알고리즘
  • c++
  • 복사 생성자

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
같은편

홍익대 게임소프트웨어전공의 프로그래밍 단련 공간

멤버 초기화 리스트
C++ 프로그래밍/클래스

멤버 초기화 리스트

2022. 7. 25. 17:26

생성자의 가장 큰 특징 중 하나인 멤버 초기화 리스트(member initialization list)는 생성자 함수 헤더와 함수 몸체 사이에 :를 넣고 클래스의 멤버 변수와 매개변수를 "멤버(매개변수)"의 형태로 나열하는 것입니다.

class Complex
{
	double real, imag;
public:
	Complex(double r = 0, double i = 0) : real(r), imag(i) {}
};

void main()
{
	Complex a(2.0, 4.0); //객체 초기화
}

여기서 real(r)은 real = r과 똑같이 동작합니다.

이제 함수 블록에 멤버의 초기화 코드를 적을 필요가 없게 됩니다.

 

이 방법은 얼핏 보면 초기화 방법의 변경에 지나지 않는 것이라고 보이지만 사실 매우 중요한 용도가 있습니다.

다음과 같이 무조건 멤버 초기화 리스트를 사용해야만 하는 상황이 있습니다.

  • 클래스의 상수 멤버나 참조자 멤버를 초기화하기 위해 (C++11 이후 버전에서는 그냥 선언 및 초기화가 가능하다)
  • 다른 클래스의 객체를 멤버로 갖는 경우 이들을 초기화하기 위해
  • 상속 관계에서 부모 클래스의 생성자를 이용하기 위해

두 번째와 세 번째 용도가 매우 중요합니다.

저작자표시 비영리 변경금지 (새창열림)

'C++ 프로그래밍 > 클래스' 카테고리의 다른 글

객체의 복사와 복사 생성자  (0) 2022.07.28
객체 생성되는 것과 안 되는 것  (0) 2022.07.25
생성자와 멤버 함수의 유사점과 차이점  (0) 2022.07.25
구조체에서 클래스로  (0) 2022.07.25
클래스의 멤버 변수나 멤버 함수를 static으로 처리하는 경우  (0) 2022.07.21
    같은편
    같은편
    책을 통해 이때까지 블로그나 유튜브에서 얻었던 지식의 파편들을 정립하고 합쳐 단단한 발판으로 만들기 위한 블로그

    티스토리툴바