Language/C++
const 클래스 멤버변수 초기화하기
Triany
2015. 3. 9. 18:42
멤버 이니셜라이저문법 : const 멤버를 초기화 하는 것이 가능!
class Student
{
const int id;
int age;
public:
Student(int _id, int _age) : id(_id)
{
age=_age;
}
};
생성자 : id(_id)
멤버변수 id를 매개변수 _id로 초기화하라!
이 방법이 아니라
Student(int _id, int _age)
{
id = _id;
age = _age;
}
로 초기화 하면 당연히 에러가 뜬다!!
객체의 생성순서는
1. 메모리 할당
2. 초기화 인데,
객체가 생성당시 쓰레기 값으로 이미 초기화 된 것을,
생성자로 다시 초기화 하려고 하면서 문제가 발생한다!!
따라서 const멤버 변수를 초기화 하기 위해서는
반드시 위의
멤버 이니셜라이저! 라는 문법을 이용할것!!