C++ 模板 与 泛型编程
前言
模板有两种:类模板和函数模板 。模板是泛型编程的基础。
什么叫:泛型编程?
使用独立于特定类型的方式进行编程。也就是我们在编程的时候不明确的写上类型,而是使用一个模板参数来代表某种类型。
所以泛型编程就需要使用模板。泛型编程这种编程方法,主要使用于:容器、迭代器、算法 。比如C++著名的标准模板库中都是使用模板和泛型编程。
并且数据结构和算法,都是大量的使用泛型编程的。所以本篇博客介绍如何使用C++进行泛型编程,来编写一个简单的队列类。下两篇博客,我们来一个实战:使用泛型编程的方法编写顺序队列 和 链式队列。
下面,我们写一个小例子,来介绍什么是泛型编程。
示例讲解
现在我们来做这样的一个例子:使用泛型编程做一个队列类。
我们先创建一个 queue.h
文件 和 一个main.cpp
文件。
先将下面的代码复制到 queue.h
文件里面。
#include<iostream>
#include <iomanip>
using namespace std;
//template<class T>
class Queue{
struct Node{
int a;
Node * next;
};
public:
Queue();
~Queue();
void push(int b);
void pop();
int getlength();
virtual void print();
private:
Node * head;
Node * rear;
int num;
};
void Queue::push(int b){
Node *pl = new Node;
pl->a = b;
pl->next = NULL;
rear->next = pl;
rear = pl;
num++;
cout << setw(2) << b << setw(2) << " 进入队列 "</