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멤버 변수를 초기화 하기 위해서는

반드시 위의

멤버 이니셜라이저! 라는 문법을 이용할것!!

Posted by Triany