c++ primer plus 第15章友,异常和其他:15.2.2模板中的嵌套
15.2.2模板中的嵌套
15.2.2模板中的嵌套
您知道,模板很适合用于实现诸如 Queue 等容器类。您可能会问,将Queue 类定义转换为模板时,是否会由于它包含嵌套类而带来问题?答案是不会。程序清单 15.5 演示了如何进行这种转换。和类模板一样,该头文件也包含类模板和方法函数模板。
程序清单15.5 queuetp.h
// queuetp.h -- queue template with a nested class
#ifndef QUEUETP_H_
#define QUEUETP_H_
template <class Item>
class QueueTP
{
private:
enum {
Q_SIZE = 10};
// Node is a nested class definition
class Node
{
public:
Item item;
Node * next;
Node(const Item & i):item(i), next(0){
}
};
Node * front; // pointer to front of Queue
Node * rear; // pointer to rear of Queue
int items; // current number of items in Queue
const int qsize; // maximum number of items in Queue
QueueTP(const QueueTP & q) : qsize(0) {
}
QueueTP & operator