2011-12-03 4 views
0

또 다른 쉬운 일 .....C++ 배열 오류 C3646 : 'jarArray': 알 수없는 재정의 지정

은 내가 헤더 (상자)에 선언 된 객체 (항아리)의 배열을 가지고있다. 내가 선언에서 뭔가 빠진 것 같아

#include "Jar.h" 
#include "Box.h" 


..... 

jarArray[] = {Jar("bolts"), Jar("Nuts"), Jar("screws"), Jar("drywallnails"), Jar("nails")}; 

: 실제 상자 생성자 @의 box.cpp에서

#include "Jar.h" 

using namespace std; 



class box 
{ 
public: 
box(); 
void searchForPart(string part); 


private: 


int numberOfJars; 
Jar jarArray[50]; 
int count; 
}; 

, 나는하여 항아리 배열을 채 웁니다. 오류 C3646 : 'jarArray': 알 수없는 재정의 지정자. 우리의 사랑하는 C++ 03,

Bar::Bar() 
: jarArray({Jar("bolts"), Jar("Nuts"), Jar("screws"), Jar("drywallnails"), Jar("nails")}) 
{ 
    //... 
} 

그러나 지금 당신이 C++ (11)와 함께 작업하는 경우

+0

어디에서 그런 구문을 보았습니까? * jarArray [] = ...; * C++에서? (또는 C) – Beginner

+0

@Roman B .: 나는 Jar jarArray [] = {...}'선언문에서 배열을 초기화하는 문법을 가지고 있다고 생각한다. 그것은 의미가 있습니다, 그것은 단지 올바르지 않습니다. –

+0

이제 나는 ... 오류 C2512 : 'Jar': 사용할 수있는 적절한 기본 생성자가 없습니다 문자열을 취하는 Jar의 생성자가 있더라도 ... – Lexicon

답변

1

???없는 내가 "M 무엇을 어떤 제안, 나는 당신이 할 수 있었 생각 당신이 C++ 11 미만인 경우는

Bar::Bar() 
{ 
    jarArray[0] = Jar("bolts"); 
    jarArray[1] = Jar("nuts"); 
    jarArray[2] = Jar("screws"); 
    jarArray[3] = Jar("drywallnails"); 
    jarArray[4] = Jar("nails"); 
    //... 
} 
0

에 온다 :.

Bar::Bar() : jarArray{Jar("bolts"), ... , Jar("screws")}{} 

루프 또는 이와 동등한에 대한 사용하지 않으면

하지만 문제는 아마 Jar이 Box.cpp에 표시되지 않는다는 것입니다.

jarArray는 Box의 멤버입니다. 그래서 당신은 상자 바로 을 초기화 할 수 있습니까? :)

+1

아니, 그건 개인이야 :) – Beginner