によってスキップされ、私はエラーを取得していますなぜ私は理解していない:初期設定が「ケース」ラベル
initialization of 'element' is skipped by 'case' label.
を誰かが私に説明していただけますか?
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;
}
}
このエラーはかなり明確で、switch文の使用も非常に奇妙です。 – Rapptz
それぞれの 'case'は新しいスコープを導入しません(' {} 'ブロックだけがそれを行います)。だから、あるケースの中に変数を宣言するとき、その変数はそれ自身のブロックの中に置くべきです。 – Cameron