강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

choiiohc1님의 프로필 이미지
choiiohc1

작성한 질문수

홍정모의 따라하며 배우는 C++

8.4 생성자 멤버 초기화 목록

9:12 초 class 내의 non-static 멤버 중 class 초기화시 {}는 되고, ()는 안되는 이유

작성

·

163

0

class Something

{

private:

B m_b{ 1024 };

}

강의에서는 curly bracket을 이용해서 class B의 멤버변수에 값을 할당하는데, bracket ()을 사용해서는 오류가 발생합니다.

Member initializer list에서는 bracket을 이용해서 값을 할당할 때 bracket ()이 가능한데 어떤 차이가 있는지 궁금합니다.

답변 1

0

안녕하세요? 이 부분에 대해서는 제가 구체적으로 설명드리긴 힘들겠군요.
다만 "Bjarne Stroustrup, The C++ programming language 4th ed., 504 pp." 에서는 다음과 같이 언급하고 있습니다.
"For pretty obscure technical reasons related to parsing and name lookup, the {} and = initializer notations can be used for in-class member initializers, but the () notation cannot."

static member variable은 다른 member 들과는 조금 다른 특성을 가지고 있기 때문이라 생각되는데, 이는 8.10 강의에서 다루게 됩니다.

choiiohc1님의 프로필 이미지
choiiohc1

작성한 질문수

질문하기