关于模板。。。。 大家抢分啊

lao_shan 2003-12-04 12:30:38
template<class T1>
class A
{
}

template<class T2>
class B
{
}

template<class T3>
class C
{
B<A<T1>> student;//B类的参数是类A,而A也是一个模板函数,能这样定义吗?
//如何实现?
......
}

...全文
57 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
leyt 2003-12-04
  • 打赏
  • 举报
回复
同意 接分~~~~~~~~
lao_shan 2003-12-04
  • 打赏
  • 举报
回复
可以了。多谢。
原来是错在 B<A<int>> a;
正确的是 B< A<int> > a;

多谢!!!有的空格是不可忽略的。
lao_shan 2003-12-04
  • 打赏
  • 举报
回复
#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)
MadLee 2003-12-04
  • 打赏
  • 举报
回复
template<class T3, class T1>
class C
{
B< A<T1> > student;
......
}
Wolf0403 2003-12-04
  • 打赏
  • 举报
回复
如果 T1 是个非模板类型那么就可以。

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧