下面分享一个代码,实现的是进制转换的效果,用到了类的模板知识。
类的模板我简单理解的解释一下,首先要有两个概念:模板类,和类模板。
当在主函数中使用了模板,才会在内存中分配模板类的空间,二在主函数外定义的都只能叫做类模板。有了模板类,就可以很方便的修改栈中放入和取出的数据类型。
这里把修改的代码给出,其他代码和之前一样。
#include "Stack.h"
#include "Coordinate.h"
#include <stdlib.h>
#include <iostream>
using namespace std;
#define Binary 2
#define Octonary 8
#define Hex 16
int main()
{
char num[17] = "0123456789ABCDEF";
Stack<char>* p = new Stack<char>(30);//这里<>填入什么数据类型,网堆中就传入什么类型的数据。这里因为是传入数()各种进制,所以用int
int N = 5555;
int Mod = 0;
while (N != 0)
{
Mod = N%Binary;
//Mod = N% Octonary;
//Mod = N%Hex;
p->enterStack(num[Mod]);
N = N / Binary;
//N = N / Octonary;
//N = N / Hex;
}
p->travelStack();
//cout << p->StackLen() << endl;
system("pause");
return 0;
}