• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++模板template的基本使用

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

一:模板定义:模板就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数, 从而实现了真正的代码可重用性。模版可以分为两类,一个是函数模版,另外一个是类模版。

二:模板的;两种声明方式:1.template<class T>     2.template<typename T>

三:两种模板的举栗

1.函数模板

 1 #include <iostream>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 #include <cstdio>
 5 using namespace std;
 6 
 7 template<class T>
 8 void Swap(T& a,T& b){
 9     T temp;
10     temp = a;
11     a = b;
12     b = temp;
13 }
14 int main(){
15     int a = 1,b = 2;
16     printf("a=%d,b=%d\n",a,b);
17     Swap<int>(a,b);
18     printf("a=%d,b=%d\n",a,b);
19     system("pause");
20 } 

2.类模板

 1 #include <iostream>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 #include <cstdio>
 5 using namespace std;
 6 template<class T>
 7 class Stack{
 8 private :
 9     T *m_ptr;
10     int m_size;
11     int m_n;
12 public:
13     Stack();
14     ~Stack();
15     void push(T t);
16     T pop();
17     bool isEmpty();
18 };
19 
20 template<class T> Stack<T>::Stack(){
21     m_size = 100;
22     m_ptr = new T[m_size];
23     m_n = 0;
24 }
25 template<class T> Stack<T>::~Stack(){
26     delete [] m_ptr;
27 }
28 template<class T> void Stack<T>::push(T t){
29     m_ptr[m_n++] = t;
30 }
31 template<class T> T Stack<T>::pop(){
32     return m_ptr[--m_n];
33 }
34 template<class T> bool Stack<T>::isEmpty(){
35     return m_n == 0 ? true : false;
36 }
37 int main(){
38     Stack<int> stack;
39     stack.push(1);
40     stack.push(2);
41     stack.push(3);
42     while(!stack.isEmpty()){
43         printf("%d\n",stack.pop());
44     }
45     system("pause");
46 }

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
超低功耗研发-STM32L151C8T6芯片(一)时钟系统概述发布时间:2022-07-13
下一篇:
C#注册判断用户名是否重复发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap