프로그래밍/C++

생성자함수 에서 초기화 리스트 와 대입의 차이점

StingW 2015. 12. 17. 14:31

class Myclass 

{

int val;

const int tem = 10;

일반 대입으로 사용

Myclass (int A, int B)  ------------------------ 1번  // 초기화가 1번 실행됨

{

val = A;    // operator = 연상자가 1번 실행됨

tem = B;   

}

///////////////////////

초기화 리스트 사용

Myclass(int A, int B) : val(A), tem(B)  ----------2번

{ }

}

초기화 리스트란

- 클래스트 각 멤버를 생성자 뒤에 " : " 사용하여 객체의 멤버를 초기화 할수 있다. 이것을 콜론초기화 초기화 리스트 라고 한다.

초기화 리스트를 사용 하는 이유는 호율성이 좋아 사용한다.

효율성

- 1번과 같은 방법으로 할 경우 클래스 생성시 한번의 초기화가 이루어진후 operator = 연산자가 이루어 지므로 변수 하나당 총 2번을 실행하게 된다. 

  2번과 같은 경우는 클래스가 생성 되면서 한번의 초기화만 이루어 진다. 그래서 효율면으로는 2번의 방식인 초기화 리스트를 사용하는게 좋다.