이 C++ 프로그래밍 언어의 제 4 판 8 장 에서 오류 char[2] not assignable
과 char [5] not assignable
이 발생합니다. 나는 clang 4.9를 사용하고있다. 내가 뭘 놓치고 있니?구조체의 배열 멤버를 초기화하십시오.
struct Address{
string name;
int number;
string street;
string town;
char state[2];
char zip[5];
Address(const string n,int nu,const string & s,
const string& t,const string& st,int z);
};
Address::Address(const string n,int nu,const string & s,
const string& t,const string& st,int z)
:name{n},
number{nu},
street{s},
town{t}
{
if(st.size()!=2)
cout<<"state abbreviation should be two characters";
state={st[0],st[1]};
ostringstream ost;
ost<<z;
string zi{ost.str()};
switch(zi.size()){
case 5:
zip={zi[0],zi[1],zi[2],zi[3],zi[4]};
break;
case 4:
zip={'0',zi[0],zi[1],zi[2],zi[3]};
break;
default:
cout<<"unexpected zip code format";
}
}
취향의 문제이다 (https://stackoverflow.com/help/mcve)! 예 : 'zi' 정의가 아직 표시되지 않았습니다. – javaLover
여기에 불완전한 코드가있는 것은 좋지 않습니다. 게다가 내부 클래스 초기화를 검사하기 위해 왜 수많은 매개 변수를 제공해야합니까? 작은 코드 스 니펫을 제공해주세요! – Klaus
나는 앞에서 약간 불완전한 코드를 게시 한 것을 인정하지만, 관련성이 있지만 혼란 스럽다는 것을 알기 전에 최선을 다했습니다. http://stackoverflow.com/questions/4057948/initializing-a-member-array-in-constructor-initializer – mage