为什么下面的代码会产生错误:
错误:声明“ SomeClass val”冲突 SomeClass(val);
注意:以前的声明为“ int val” int val = 10
是什么使编译器将此解释为val的重新定义?
#include <iostream>
struct SomeClass{
SomeClass(const int& a ) {
std::cout << __PRETTY_FUNCTION__ << " " << a << std::endl;
}
};
int main(int argc, char** argv) {
int val = 10;
SomeClass(val);
return 0;
}