函数未调用与类同名

时间:2013-06-17 13:36:11

标签: c++

为什么下面的函数void i( )没有被调用为'Normal'函数。

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

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

    i();// 

    return 0;
}

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

2 个答案:

答案 0 :(得分:8)

内部i正在遮蔽外部::i();。你正在调用类i的默认构造函数,在这种情况下它什么都不做。

解决方案是明确确定调用的范围,如{{1}}

答案 1 :(得分:1)

因为它试图在当前范围内调用“i”: 您可以调用您的函数::i();