반응형
'요소'초기화는 '케이스'레이블에서 건너 뜁니다.
이 질문에 이미 답변이 있습니다.
오류가 발생하는 이유를 이해할 수 없습니다.
'요소'의 초기화는 '케이스'레이블에서 건너 뜁니다.
누군가 나에게 설명해 주시겠습니까?
void LinkedList::process_example(int choice) {
switch(choice) {
case 1:
cout << endl << endl << "Current S = ";
this->printSet();
cout << "Enter an element :";
char* element = "lol";
//cin>>element;
cin.clear();
cin.ignore(200, '\n');
this->Addelementfromback(element); //error is here
cout << endl << endl << "Current S = ";
this->printSet();
break;
case 2:
this->check_element();
break;
case 3:
cout << endl << endl;
cout << "Current Set S = ";
this->printSet();
cout << endl << "S has ";
int count = this ->check_cardinality();
cout << count << " elements";
break;
}
}
랩 시도 case
와를 {}
, 그리고 모든 문 내부에 넣어 {}
.
case 1:
{
cout << endl << endl << "Current S = ";
this->printSet();
// and other mess
}
break;
이 모든 명령문을 함수에 넣고 case
명령문을 명확하게 유지해야 합니다. 예를 들어 다음 스타일을 작성하십시오.
case 1:
initializeElement();
break;
case 2:
doSomethingElse();
break;
링크 보기
When a variable is declared in one case
, the next case
is technically still in the same scope so you could reference it there but if you hit that case
without hitting this one first you would end up calling an uninitialised variable. This error prevents that.
All you need to do is either define it before the switch
statement or use curly braces { }
to make sure it goes out of scope before exiting a specific case
.
참고URL : https://stackoverflow.com/questions/14669457/initialization-of-element-is-skipped-by-case-label
반응형
'IT TIP' 카테고리의 다른 글
다른 스레드에 영향을주지 않고 node.js에서 스레드를 잠자는 방법은 무엇입니까? (0) | 2020.12.03 |
---|---|
무결성 제약 위반 : 1452 하위 행을 추가하거나 업데이트 할 수 없습니다. (0) | 2020.12.03 |
명령 줄 도구를 사용하여 파일의 줄 길이 계산 (0) | 2020.12.03 |
배열에 다음이 포함 된 경우 각도 표현식 (0) | 2020.12.03 |
HttpClient를 사용하여 데이터를 게시하는 방법은 무엇입니까? (0) | 2020.12.03 |