64,673
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
// 声明部分
template <class Type>
class Queue;
template <class Type>
class QueueItem;
template<class Type>
std::ostream& operator<<(std::ostream &os,Queue<Type>&);
template<class Type>
std::ostream& operator<<(std::ostream &,QueueItem<Type>&);
////////////////////////////////////////////////////////////
template <class Type>
class Queue{
friend std::ostream& operator<< <Type>(std::ostream&, Queue<Type>&);
public:
Queue():front(0),back(0){}
~Queue();
Type remove();
void add(const Type&);
bool is_empty()const{
return 0==front;
}
private:
QueueItem<Type> *front;
QueueItem<Type> *back;
};
typedef char *PCC;
template <>void Queue<PCC>::add(const PCC &tem);//特化生明
template <>
void Queue<PCC>::add(const PCC &tem)
{
std::cout << "显示类模板特化";
}
#include <iostream>
template <class T>
class TEST
{
public:
TEST()
{}
void func();
private:
T val;
};
template<> void TEST<int>::func()
{
std::cout<<"显示类模板特化";
}
template <class T>
void TEST<T>::func()
{
std::cout<<"非特化";
}