王老师 C++ 类模板

1.定义语法:

template <模板参数表> class 类名 类体

注:

模板类型参数 typename id

模板非类型参数 例如: int n

类体中可以出现的类型有 a. 基本数据类型 b. 用户自定义类型 c. 模板类型参数 d. 类名

2.模板实例化

(1)从类模板生成具体类的过程

(2)时机:定义对象时; 指针或者引用解引用(*p)时;

(3)语法:

类模板名<实参表>

例:

Node <int> x;

Node <double> *p;//注意,此时不会实例化模板

示例程序:stack模板

#include "stdafx.h"
#include <iostream>
using namespace std;

template <typename T> class Stack;

template <typename T> class StackItem
{
public:
 T info;
 StackItem *next;

 StackItem(T x)
 {
  //cout << "StackItem constructor" << endl;
  info = x;
  next = NULL;
 }

 friend class Stack<T>;
};

template <typename T> class Stack
{
 StackItem<T> * top;

public:
 Stack()
 {
  //cout << "Stack constructor" << endl;
  top = NULL;
 }

 void push(T x)
 {
  StackItem<T> *p = new StackItem<T>(x);
  p->next = top;
  top = p;
 }

 T pop()
 {
  if(top == NULL)
  {
   throw 1;
  }
  StackItem<T> * p = top;
  top = top->next;
  T x = p->info;
  delete p;
  return x;
 }
};

void main()
{
 Stack<double> a;
 a.push(1.3);
 a.push(9);
 cout << a.pop() << endl;
 cout << a.pop() << endl;
}

 
'[IT18掌www.it18zhang.com]001.Hadoop基础篇.pptx' '[IT18掌www.it18zhang.com]014.Hadoop Win7开启网络访问.pptx' '[IT18掌www.it18zhang.com]Kafka.pptx' '[IT18掌www.it18zhang.com]002.VMware下载与安装.pptx' '[IT18掌www.it18zhang.com]015.Hadoop 架构分析.pptx' '[IT18掌www.it18zhang.com]KVM.pptx' '[IT18掌www.it18zhang.com]003.Ubuntu下载与虚拟机下安装.pptx' '[IT18掌www.it18zhang.com]016.Hadoop 架构分析之启动脚本分析.pptx' '[IT18掌www.it18zhang.com]Scala.pptx' '[IT18掌www.it18zhang.com]004.Ubuntu常用命令.pptx' '[IT18掌www.it18zhang.com]017.Hadoop 架构分析之启动脚本总结.pptx' '[IT18掌www.it18zhang.com]Spark Graph编程指南.pptx' '[IT18掌www.it18zhang.com]005.Ubuntu目录与权限.pptx' '[IT18掌www.it18zhang.com]018.Hadoop MapReduce初识.pptx' '[IT18掌www.it18zhang.com]Spark SQL DataFrame Dataset编程指南.pptx' '[IT18掌www.it18zhang.com]006.Ubuntu软件包桌面与增强工具.pptx' '[IT18掌www.it18zhang.com]019.Hadoop MapReduce原理.pptx' '[IT18掌www.it18zhang.com]Spark Streaming编程指南.pptx' '[IT18掌www.it18zhang.com]007.Ubuntu本地软件源与iso制作.pptx' '[IT18掌www.it18zhang.com]019.Hadoop YARN事件分发原理.pptx' '[IT18掌www.it18zhang.com]Spark编程指南.pptx' '[IT18掌www.it18zhang.com]008.Ubuntu虚拟机克隆与Mac地址生成与网络连接方式.pptx' '[IT18掌www.it18zhang.com]020.Hadoop HDFS.pptx' '[IT18掌www.it18zhang.com]Spark编译运行处理.pptx' '[IT18掌www.it18zhang.com]009.Hadoop-Ubuntu下JDK与Hadoop安装配置.pptx' '[IT18掌www.it18zhang.com]021.Hadoop HDFS CLI.pptx' '[IT18掌www.it18zhang.com]Spark基础.pptx' '[IT18掌www.it18zhang.com]010.Hadoop配置-独立与伪分布式模式.pptx' '[IT18掌www.it18zhang.com]Ambari Hadoop集群管理工具.pptx' '[IT18掌www.it18zhang.com]Spark调优.pptx' '[IT18掌www.it18zhang.com]011.Hadoop配置-完全分布式模式.pptx' '[IT18掌www.it18zhang.com]Avro.pptx' '[IT18掌www.it18zhang.com]ZooKeeper.pptx' '[IT18掌www.it18zhang.com]012.Hadoop Windows下免Cygwin伪分布安装
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值