cal*_*pto 5 c++ parameters class shadow
为什么第二个构造函数会影响第一个?
class RC2{
private;
bool keyset;
public:
RC2(uint32_t t1 = 64){
keyset = false;
}
RC2(const std::string KEY, uint32_t t1 = 64){
RC2(t1);
//setkey(KEY);
}
};
Run Code Online (Sandbox Code Playgroud)
给我的是:
error: declaration of 'RC2 t1' shadows a parameter
我认为编译器没有办法搞清楚这些之间的区别
我正在使用带有C++ 0x的代码块gcc
因为RC2(t1);是局部变量声明的影子参数t1,而不是对其他构造函数的调用.以下代码也有效:
int main(int argc,char* args[])
{
int(a);
a = 2;
return a;
}
Run Code Online (Sandbox Code Playgroud)
注意!在C++ 11之前,没有办法从C++中的构造函数调用同一个类上的另一个构造函数.如果您使用的是旧的C++版本,请创建一个Init()构造函数调用的方法.