与匿名对象的声明冲突

时间:2018-12-15 22:47:47

标签: c++

为什么下面的代码会产生错误:

  

错误:声明“ 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;
}

0 个答案:

没有答案