【发布时间】:2014-03-31 20:55:31
【问题描述】:
为什么会抛出错误,未声明的标识符?
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只存在于它被声明的范围内。 -
在 if 语句中?
-
除了@juanchopanza 说的,
select是在哪里声明的?我假设它是会员/全球? -
@nonsensickle,它在类声明中声明
标签: c++ parameters undeclared-identifier