본문 바로가기

카테고리 없음

C++11 클래스멤버변수를 선언과 동시에 초기화


C++11 이 도입되면서 정말 편하게 느껴졌던 기능중 하나는 바로 이거다.


class A {
	public:
		int a = 7;
	};

멤버변수를 선언과 동시에 초기화가 가능해졌다는 것이다.


C++98 에서 정적상수 변수만 가능했던 문법이 이렇게 바뀌게 되었다.



이는 런타임 생성자 호출때 이 초기화 수식을 이용할 수 있게 된다



그렇다면 선언과 동시에 초기화를 하면서


생성자에서도 초기화를 한다면?


class A {

     public:

A(): a(77) { }

};


생성자의 초기화가 우선 적용된다.



참고사이트 : http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2628.html