Aufruffunktionen über ihrer Deklaration
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()
{
}
};
Was ist der Grund für diese Inkonsistenz bei der Behandlung von Aufrufen zu Funktionen oberhalb ihrer Deklaration? Wie kann ich das in einer Klasse tun, aber nicht in einem Namespace oder in einem globalen Bereich?