본문 바로가기
프로그래밍/c++

초기화 리스트

by 오늘의논리 2023. 3. 1.
728x90

초기화 방법

 - 생성자 내에서

 - 초기화 리스트

 -C++11 문법

 

 초기화 리스트

 - 일단 상속 관계에서 원하는 부모 생성자를 호출할때 필요하다

 - 생성자 내에서 초기화 vs 초기화 리스트

  1. 일반 변수는 별 차이 없음
  2. 멤버 타입이 클래스인 경우 차이가 난다
  3. 정의함과 동시에 초기화가 필요한 경우(참조타입,const타입)
class Player
{
public:
    Player() {}
    Player(int id) {}

};


class Knight :public Player
{
public:
	Knight() : Player(1),_hp(100), _hpRef(hp), _hpComst(100)//선처리영역에서 c++11이전문법
    {
        _hp = 100;// 생성자 내에서
    }

public:
    int _hp = 100;//C++11 문법;
    int& _hpRef;
    const int _hpConst;

};

 

설계를 할때 상속관계로 만들어줄지 포함관계로 만들어줄지 고민하는것이 좋다.

728x90

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

객체지향 마무리  (0) 2023.03.01
연산자 오버로딩  (0) 2023.03.01
객체지향의 3대속성 - 다형성  (0) 2023.03.01
객체지향의 3대속성 - 은닉성  (0) 2023.02.22
객체지향의 3대속성 - 상속성  (0) 2023.02.22

댓글