对不起,没办法前置声明命名空间里的东西,因为那是命名空间里的东西,如果连命名空间里有什么东西都不知道,自然不能声明。
class A::Test;
void function(A::Test &obj);
你在一个.cpp里写一句这个,能编译过就神了。
首先,编译器不知道A是个什么,是类还是命名空间? 其次,编译器也不知道A里有没有Test。
源文件独立编译,目标文件共同链接,只有指针和引用可以使用前置声明。
class A::Test;
void function(A::Test &obj);
你在一个.cpp里写一句这个,能编译过就神了。
首先,编译器不知道A是个什么,是类还是命名空间? 其次,编译器也不知道A里有没有Test。
源文件独立编译,目标文件共同链接,只有指针和引用可以使用前置声明。