关于模板。。。。 大家抢分啊
template<class T1>
class A
{
}
template<class T2>
class B
{
}
template<class T3>
class C
{
B<A<T1>> student;//B类的参数是类A,而A也是一个模板函数,能这样定义吗?
//如何实现?
......
}
问题点数:100、回复次数:5Top
1 楼Wolf0403(废人:独活十年~心如刀割)回复于 2003-12-04 12:36:15 得分 10
如果 T1 是个非模板类型那么就可以。Top
2 楼MadLee(风里麦笛)回复于 2003-12-04 12:40:47 得分 90
template<class T3, class T1>
class C
{
B< A<T1> > student;
......
}
Top
3 楼lao_shan(老山)回复于 2003-12-04 12:44:16 得分 0
#include<iostream.h>
template<class T1>
class A
{
};
template<class T2>
class B
{
};
template<class T3>
class C
{
private:
B<A<int>> a;
};
void main()
{
}
在vc++6.0 中,编译的结果是:
Cpp1.cpp
F:\Work\新建文件夹 (2)\Cpp1.cpp(16) : error C2146: syntax error : missing ',' before identifier 'a'
F:\Work\新建文件夹 (2)\Cpp1.cpp(17) : see reference to class template instantiation 'C<T3>' being compiled
F:\Work\新建文件夹 (2)\Cpp1.cpp(16) : error C2065: 'a' : undeclared identifier
F:\Work\新建文件夹 (2)\Cpp1.cpp(17) : see reference to class template instantiation 'C<T3>' being compiled
F:\Work\新建文件夹 (2)\Cpp1.cpp(16) : error C2143: syntax error : missing '>' before ';'
F:\Work\新建文件夹 (2)\Cpp1.cpp(17) : see reference to class template instantiation 'C<T3>' being compiled
F:\Work\新建文件夹 (2)\Cpp1.cpp(16) : error C2208: 'class B' : no members defined using this type
F:\Work\新建文件夹 (2)\Cpp1.cpp(17) : see reference to class template instantiation 'C<T3>' being compiled
Error executing cl.exe.
Cpp1.exe - 4 error(s), 0 warning(s)
Top
4 楼lao_shan(老山)回复于 2003-12-04 12:48:46 得分 0
可以了。多谢。
原来是错在 B<A<int>> a;
正确的是 B< A<int> > a;
多谢!!!有的空格是不可忽略的。Top
5 楼leyt(思维机器)回复于 2003-12-04 12:50:39 得分 0
同意 接分~~~~~~~~Top




