函数未调用与类同名

mbo*_*ouz 1 c++

为什么void i( )没有像'Normal'函数那样调用下面的函数.

void i(){
    cout << 10 << endl;
}

int main(){
    class i { 
        int j;
    };

    i();// 

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

预期的正常行为是打印1O,但我没有得到任何东西,不是编译器警告也不是结果.

Sco*_*nes 8

内在i遮蔽了外层.您正在调用类i的默认构造函数,在这种情况下它不执行任何操作.

解决方案是明确地调用范围,如 ::i();

  • 嗯,`class i'的范围是什么?`主::`? (2认同)