温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何探讨C++模板限制方式

发布时间:2021-10-27 19:00:06 来源:亿速云 阅读:177 作者:柒染 栏目:编程语言

这期内容当中小编将会给大家带来有关如何探讨C++模板限制方式,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

C++编程语言中的模板应用是一个非常重要的操作技巧。它的应用在很大程度上提高了编程人员程序开发效率。

1、浮点数不能作为 非类型模板参数 如:template <float /* or double */> class TT;

2、自定义类不能作为模板参数,这些自定义类也是 非类型模板参数。

// 6-14-2009  #include <iostream> using namespace std;  // #define FLOAT  // #define TEMPLATE_OBJECT  #define COMMON_OBJECT  #ifdef FLOAT  template <float f> class TT;  #endif  #ifdef TEMPLATE_OBJECT  template < class T > class TM {};  template < TM<int> c > class TT;  #endif  #ifdef COMMON_OBJECT  class TN{};  template < TN c > class TT;  #endif

C++模板限制中还有一个,而且相当重要:

模板类或模板函数的声明与定义必须位于同一个文件中!除非新一代的编译器支持关键字export.

如果编译器不支持export关键字,但我们又想把声明与定义分开写,那该如何操作呢?方法如下:

把模板声明写在.h中,模板定义写在.cpp中,需要注意的是,我们并不像一般的文件包含那样,在.cpp中包含.h,而是在main.cpp中,把这两个东东包含进来如:

// test.h  template <typename T> class Test  {  public:  void print();  };  // test.cpp  template <typename T> void Test<T>::print()  {  cout << "Successfully!" << endl;  }  // main.cpp  #include <iostream> using namespace std;  #include "test.h"  #include "test.cpp"  int main()  {  Test<int> t;  t.print();  return 0;  }

上述就是小编为大家分享的如何探讨C++模板限制方式了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++
AI