函数模板
#include <iostream>
template<typename T>
T Max(T t1, T t2)
{
return t1 > t2 ? t1 : t2;
}
template<typename T>
T Min(T t1, T t2)
{
return t1 < t2 ? t1 : t2;
}
int main()
{
std::cout << Max(30, 12) << std::endl;
std::cout << Min('d' , 'c') << std::endl;
system("pause");
return 0;
}
类模板
#ifndef Water_H
#define Water_H
#include <iostream>
template<typename T>
class Water
{
public:
Water();
~Water();
void Push(T);
void Pop();
void print();
private:
T *ptr = nullptr;
unsigned short value = 0;
unsigned short MAX = 10;
};
#endif
template<typename T>
Water<T>::Water()
{
ptr = new T[sizeof(T)*MAX];
}
template<class T>
Water<T>::~Water()
{
if (ptr)
delete[]ptr;
ptr = nullptr;
}
template<class T>
void Water<T>::Push(T va)
{
if (value < MAX)
ptr[value++] = va;
}
template<class T>
void Water<T>::Pop()
{
if (value > 0)
--value;
}
template<class T>
void Water<T>::print()
{
for (unsigned short index = 0; index < value; std::cout << "index:" << index << " value:" << ptr[index] << "\n", ++index);
}
#include "Water.h"
int main()
{
Water<char> water;
for (unsigned short index = 0; index < 5; water.Push((char)(index + 97)) , ++index);
water.print();
water.Pop();
water.print();
system("pause");
return 0;
}
关注
笔者 - jxd (码农总动员)