为什么这会引发错误,未声明的标识符?
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();
}
(特别是currentID
调用时的参数coating->Prepare(currentID)
)。
据我所知, currentID 是在 if 语句中声明的。
在 MS VS2012 上运行,错误代码为 C2065。