CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

C++中如何在类外定义模板类内的模板函数?

楼主boodweb(TTT)2001-07-23 14:24:44 在 C/C++ / C语言 提问

请问如下代码中如果类A中的Test函数要在类内声明,而在类外定义,定义语法应该是怎么样的?(就象现在注释掉的部分要实现的那样,但现在老是出错)  
  template   <class   T>  
  class   A  
  {  
  public:  
  template   <class   T1>  
  void   Test(T1   p){};  
  T   a;  
  };  
  /*  
  template   <class   T,class   T1>  
  void   A<T>::Test(T1   p)  
  {  
  }  
  */  
  int   main(int   argc,   char*   argv[])  
  {  
  A<int>   a;  
  a.Test(12);  
  return   0;  
  } 问题点数:20、回复次数:6Top

1 楼lvfengxun(lfx)回复于 2001-07-23 14:29:56 得分 0

关注Top

2 楼comet(黄昏十二乐章)回复于 2001-07-23 14:38:25 得分 0

全部类的声明、定义代码放在   .h   头文件中。Top

3 楼boodweb(TTT)回复于 2001-07-23 22:31:25 得分 0

To   comet:  
  已经这样做了,以上所有代码都在一个.cpp文件里Top

4 楼qingsong99(青松)回复于 2001-07-24 00:09:14 得分 0

将第五行去掉,并把第六行的{}去掉。  
  即:  
  template<class   T>  
  class   A  
  {  
      public:  
            void   Test(T   p);  
            T   a;  
  };  
  template<class   T>  
  void   A<T>::Test(T   p)  
  {  
    .....  
  }Top

5 楼xiterator(xi)回复于 2001-07-24 08:34:43 得分 20

目前的大多数compiler还不能解析在类的声明之外定义的member   template。C++   standard   对于在类定义之外定义member   template   的标准写法如下(不过在VC++6.0下无法编译通过):  
  template   <class   T>   template   <class   T1>    
  void   A<T>::Test(T1   p)  
  {   }  
  Top

6 楼boodweb(TTT)回复于 2001-07-24 22:25:09 得分 0

To   qingsong99:  
  这样的话Test的参数在类定义的时候就确定了,不能达到函数模板的要求  
   
  To   xiterator:  
  那请问知道现在有什么编译器可以识别吗Top

相关问题

  • C++模板判断函数是否被定义
  • 初学者问题:C++函数模板
  • 大侠help,怎么定义成员模板函数?
  • 我想给模板类定义一个拷贝构造函数。。。
  • 关于DataGrid模板自定义函数的问题。。。。。
  • 函数模板能被定义在类中吗?
  • 定义了函数类,但是如何使用模板呢?
  • 在模板类中定义友元函数的问题
  • C++中函数模板和函数重载的关系
  • C# ASP.NET 我在模板列里加了一个Image控件怎么调用.cs文件里自己定义的函数

关键词

  • c++
  • 模板
  • 函数
  • template
  • 代码
  • 定义
  • 类
  • 声明
  • test

得分解答快速导航

  • 帖主:boodweb
  • xiterator

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo