2012-02-28 5 views
2

내 개체 A의 기본 생성자를 만들고 싶습니다. 내 문제는 개체의 변수 중 하나가 벡터 배열 B 개체라는 것입니다.C++에서 빈 개체 벡터를 설정하는 방법?

은 기본적으로 내 문제를주는 라인은 현재 다음과 같습니다

A(): name(""), bArray({B()}), n(0) {} 

그것은 일부 구문 문제가 될 수 있어야합니다.

전체 생성자는 다음과 같습니다

A(string n, vector<B> in, int k): name(n), bArray(in), n(k) {} 
+1

이니셜 라이저 목록에 bArray를 추가하지 마십시오. 클래스 변수로 가지고 있다면 이미 비어 있습니다. –

+1

'bArray()'가 작동하지 않습니까? –

답변

5

당신은 초기화 목록에서 vector를 초기화 할 필요가 없습니다. 멤버 클래스는 기본 생성자를 사용하여 이미 생성되어 있습니다.이 경우 기본 생성자가 빈 인스턴스로 벡터를 초기화합니다.

+0

나쁜 조언, IMHO. 이니셜 라이저 목록은 혼동을 피하기 위해 멤버 변수 선언을 반향시켜야합니다. Scott Meyers는 EffC++에서도 마찬가지입니다. –

3

n 및 in에는 고유 한 기본 생성자가 있으므로 명시 적으로 초기화하지 않아도됩니다. k를 0으로 초기화하고 다른 두 개를 생략하면 정상이어야합니다.

관련 문제