#include <iostream>
class Y
{
public:
Y();
};
class X
{
public:
void foo() {}
friend Y::Y();
X()
{
Y::Y(); //Statement 1
}
};
Y::Y()
{
std::cout << "Hello";
}
int main()
{
X a;
Y::Y(); //Statenent 2
}
上面的程序HelloHello
在 Dev c++ 和键盘上产生输出。但是当我在 Code::Blocks 上运行时,它给出了错误remove the reduntant Y::
如果我用 h 替换语句 1 和 2 Y();
,程序会产生所有 3 的输出。为什么会这样?