프로그래밍/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번의 방식인 초기화 리스트를 사용하는게 좋다.