Comment37
Например, вот (сразу отмечу, что автор этого кода – не я, меня не интересует. как в этой ситуации получить компилирующийся код, мне здесь интересна только логика компилятора)
class C
{
};
class A
{
public:
};
void C::fun(A::B *z)
{
}
int main() {}
Вот ошибки gcc-4,0:
f.cpp:3: error: ‘A’ has not been declared
f.cpp:3: error: ‘B’ has not been declared
f.cpp:12: error: prototype for ‘void C::fun(A::B*)’ does not match any in class ‘C’
f.cpp:3: error: candidate is: void C::fun(int*)