void foo()
{
bar(); // error: ‘bar’ has not been declared
}
void bar()
{
}
namespace N
{
void foo()
{
N::bar(); // error: ‘bar’ is not a member of ‘N’
}
void bar()
{
}
}
class C
{
static void foo()
{
C::bar(); // works just fine
}
static void bar()
{
}
};
声明之上处理对函数的调用的不一致的原因是什么?我怎么能在课堂上做到这一点,但不是在命名空间或全球范围内?呼叫功能在他们的声明之上
也许,编译器通过类声明中类方法实现多次,而“C”编译器只通过一次。可能是一些遗产,因为foo()本质上是C-函数 – 2012-08-06 09:55:12
从静态void foo中移除静态后的结果是什么? – perilbrain 2012-08-06 09:57:09
@匿名,这并没有改变任何东西 – SingerOfTheFall 2012-08-06 10:00:11