爲什麼這會拋出一個錯誤,未聲明的標識符?爲什麼編譯器會在上面的「if」語句中聲明的變量說「未聲明的標識符」?
void IDcard::Prepare(CoatingDecorator *coating)
{
if (select == 1) { IDcard *currentID = new Passport(); }
else if (select == 2) { IDcard *currentID = new DriversLicence(); }
AddPhoto();
coating->Prepare(currentID);
std::cout << "Total Cost: " << coating->totalCost;
DispenseID();
}
(主叫coating->Prepare(currentID)
當具體currentID
參數)。
據我可以告訴currentID在if語句中聲明。
在MS VS2012上運行這個,錯誤代碼是C2065。
'currentID'只存在於聲明的範圍中。 – juanchopanza
與if語句中的一樣嗎? – user3001499
除了@juanchopanza說的什麼,在哪裏聲明瞭'select'?我假設它是一個會員/全球? – nonsensickle