当前位置:编程学习 > C/C++ >>

第16章 模板与泛型编程(7)

16.4 类模板成员

2. QueueItem类

//QueueItem.h  
#ifndef QUEUEITEM_H  
#define QUEUEITEM_H  
template <class Type> class QueueItem; 
#include "QueueItem.cpp"  
#endif 
//QueueItem.h
#ifndef QUEUEITEM_H
#define QUEUEITEM_H
template <class Type> class QueueItem;
#include "QueueItem.cpp"
#endif//QueueItem.cpp  
#include "stdafx.h"  
 
template <class Type>  
class QueueItem 

    QueueItem(const Type &t):item(t), next(0){} 
    Type item; 
    QueueItem *next; 
}; 
//QueueItem.cpp
#include "stdafx.h"

template <class Type>
class QueueItem
{
 QueueItem(const Type &t):item(t), next(0){}
 Type item;
 QueueItem *next;
};3. Queue类

//Queue.h  
#ifndef QUEUE_H  
#define QUEUE_H  
 
template <class Type>  
class Queue; 
#include "Queue.cpp"  
 
#endif 
//Queue.h
#ifndef QUEUE_H
#define QUEUE_H

template <class Type>
class Queue;
#include "Queue.cpp"

#endif//Queue.cpp  
#include "stdafx.h"  
#include "QueueItem.h"  
 
template <class Type> 
class Queue 

public: 
    Queue():head(0), tail(0){} 
    Queue(const Queue &Q):head(0), tail(0) 
    {copy_elems(Q);} 
    Queue& operator=(const Queue&); 
    ~Queue(){destroy();} 
    Type& front() 
    {return head->item;} 
    const Type &front() const{return head->item;} 
    void push(const Type &); 
    void pop(); 
    bool empty() const 
    {return head==0;} 
private: 
    QueueItem<Type> *head; 
    QueueItem<Type> *tail; 
    void destroy(); 
    void copy_elems(const Queue&); 
}; 

 摘自 xufei96的专栏
 

补充:软件开发 , C++ ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,