免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: yeath
打印 上一主题 下一主题

各位,请问一下为什么不能在类里定义一个 模板类变量? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2004-10-07 14:17 |只看该作者

各位,请问一下为什么不能在类里定义一个 模板类变量?

为什么不可以?在前面加上using namespace std;就是了

  1. #include <vector>;
  2. using namespace std;

  3. class CTestG{
  4. private:
  5.     vector<vector<int>; >; vecList;
  6. };
  7. int main()
  8. {
  9.     class CTestL{
  10.     private:
  11.         vector<int>; vecList;
  12.     };
  13. }
  14. //g++  3.3.1
复制代码


不知道是不时你们说得话题。
class和struct是数据类型,template class 也是数据类型。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
12 [报告]
发表于 2004-10-07 14:51 |只看该作者

各位,请问一下为什么不能在类里定义一个 模板类变量?

原帖由 "ljttlf" 发表:
不知道是不时你们说得话题。
class和struct是数据类型,template class 也是数据类型。

你这个是模板类吗?
C++ 我学得不好,辨别不出来。
我记得我学的模板类好像不是这样子的。

论坛徽章:
0
13 [报告]
发表于 2004-10-07 15:18 |只看该作者

各位,请问一下为什么不能在类里定义一个 模板类变量?


  1. template<typename _Tp, typename _Alloc = allocator<_Tp>; >;
  2.     class vector : protected _Vector_base<_Tp, _Alloc>;
  3.     {
  4.       // Concept requirements.
  5.       __glibcpp_class_requires(_Tp, _SGIAssignableConcept
复制代码

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
14 [报告]
发表于 2004-10-07 15:27 |只看该作者

各位,请问一下为什么不能在类里定义一个 模板类变量?

原帖由 "ljttlf"][code 发表:
template<typename _Tp, typename _Alloc = allocator<_Tp>; >;
    class vector &#58; protected _Vector_base<_Tp, _Alloc>;
    {
      // Concept requirements.
      __glibcpp_class_requires&#40;_Tp, _SGIAssignableConcept [/code]

嗯,这个才象我学过的嘛!

论坛徽章:
0
15 [报告]
发表于 2004-10-07 15:32 |只看该作者

各位,请问一下为什么不能在类里定义一个 模板类变量?

那么

  1. class CTestG{
  2. private:
  3.     vector<vector<int>; >; vecList;
  4. };
复制代码

是不是在类里定义一个模板类变量?
vecList是变量,vector<vector<int>; >;是类型

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
16 [报告]
发表于 2004-10-07 15:37 |只看该作者

各位,请问一下为什么不能在类里定义一个 模板类变量?

拜托你把 #include <vector>; 解开看一下好不好?

井号打头的表示是“预处理”操作,
而“预处理”是在编译之前进行的。

如果在“预处理”指令中,
包含进来了一些代码,
那你还能说后面的那个 vecList 是“用模板类”定义变量吗?
它只是用“实例化后的 vector 来定义变量”。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
17 [报告]
发表于 2004-10-07 15:40 |只看该作者

各位,请问一下为什么不能在类里定义一个 模板类变量?

PS:模板类一旦实例化以后,就已经是普通的类了。

论坛徽章:
0
18 [报告]
发表于 2004-10-07 15:46 |只看该作者

各位,请问一下为什么不能在类里定义一个 模板类变量?


  1. template<typename type1>;
  2. class T{
  3.     template<typename type2>;   // 与 type1不同名
  4.     class TT{   
  5.     };
  6.     TT<int>; to;
  7. };   
  8. main()
  9. {
  10. }
  11. //g++ 3.3.1
复制代码


这个没有用#预处理吧

论坛徽章:
0
19 [报告]
发表于 2004-10-07 15:53 |只看该作者

各位,请问一下为什么不能在类里定义一个 模板类变量?

拜托,我第一次听说模板叠代是预处理过程。

论坛徽章:
0
20 [报告]
发表于 2004-10-14 15:15 |只看该作者

各位,请问一下为什么不能在类里定义一个 模板类变量?

这个跟模板类的实现原理有关,g++上可以,但是在VC 6.0是不支持的,这个过程叫什么给忘了,<<c++对象模型>;>;里好像有说的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP