9 个解决方案
#1
没人了吗?放假去了吗?
#2
非模板类写句class list;就行了。模板类不行的。
#3
要这么声明:
namespace example
{
class list { }
}
.....
class example::list;
#4
看到list,我还以为是想前向声明模板类……
#5
对不起,没办法前置声明命名空间里的东西,因为那是命名空间里的东西,如果连命名空间里有什么东西都不知道,自然不能声明。
class A::Test;
void function(A::Test &obj);
你在一个.cpp里写一句这个,能编译过就神了。
首先,编译器不知道A是个什么,是类还是命名空间? 其次,编译器也不知道A里有没有Test。
源文件独立编译,目标文件共同链接,只有指针和引用可以使用前置声明。
class A::Test;
void function(A::Test &obj);
你在一个.cpp里写一句这个,能编译过就神了。
首先,编译器不知道A是个什么,是类还是命名空间? 其次,编译器也不知道A里有没有Test。
源文件独立编译,目标文件共同链接,只有指针和引用可以使用前置声明。
#6
到底是模板类不行呢?还是怎么的?
#7
using namespace A;
class List;
class List;
#8
.h中不是最好用完全限定符吗?
#9
我弄错了
你看看这篇前置声明的文章
http://software.intel.com/zh-cn/blogs/2010/05/04/c-2/
你看看这篇前置声明的文章
http://software.intel.com/zh-cn/blogs/2010/05/04/c-2/
#1
没人了吗?放假去了吗?
#2
非模板类写句class list;就行了。模板类不行的。
#3
要这么声明:
namespace example
{
class list { }
}
.....
class example::list;
#4
看到list,我还以为是想前向声明模板类……
#5
对不起,没办法前置声明命名空间里的东西,因为那是命名空间里的东西,如果连命名空间里有什么东西都不知道,自然不能声明。
class A::Test;
void function(A::Test &obj);
你在一个.cpp里写一句这个,能编译过就神了。
首先,编译器不知道A是个什么,是类还是命名空间? 其次,编译器也不知道A里有没有Test。
源文件独立编译,目标文件共同链接,只有指针和引用可以使用前置声明。
class A::Test;
void function(A::Test &obj);
你在一个.cpp里写一句这个,能编译过就神了。
首先,编译器不知道A是个什么,是类还是命名空间? 其次,编译器也不知道A里有没有Test。
源文件独立编译,目标文件共同链接,只有指针和引用可以使用前置声明。
#6
到底是模板类不行呢?还是怎么的?
#7
using namespace A;
class List;
class List;
#8
.h中不是最好用完全限定符吗?
#9
我弄错了
你看看这篇前置声明的文章
http://software.intel.com/zh-cn/blogs/2010/05/04/c-2/
你看看这篇前置声明的文章
http://software.intel.com/zh-cn/blogs/2010/05/04/c-2/