调用在另一个对象内部定义的链表对象的函数



好吧,我有两个类在这里工作。

Queue对象和Stack对象。

队列实际上是一个链表,由一个头节点和下一个节点组成。

class Node
{
public:
    Node(const T& data, Node* n = 0)
    {
        element = data;
        next = n;
    }
    T element;
    Node* next;
};
/*The head of the queue*/
Node* head;

像这样…

现在Queue具有我已经实现的功能

friend ostream& operator<< <T>(ostream&,Queue<T>&);
/*The default constructor*/
Queue();
/*The copy constructor*/
Queue(const Queue<T>& other);
Queue<T>& operator=(const Queue<T>& other);
/*The destructor*/
~Queue();
void enqueue(const T& el);
T dequeue();
void increasePriority(const T& el);
bool isEmpty();

他们都工作。。。

所以我进入堆栈类

Queue<T>* queue;

这就是堆栈的定义…

问题是用堆栈对象调用这些函数

friend ostream& operator<< <T>(ostream&,Stack<T>&);
/*The constructor for the Stack class*/
Stack();
/*The copy constructor*/
Stack(const Stack<T>& other);
Stack<T>& operator=(const Stack<T>& other);
~Stack();
void push(const T& el);
T pop();
T peek();
bool isEmpty();

我将如何实现这些函数,以便它们使用队列对象函数?

换句话说。Stack类的构造函数必须调用Queue类的构造函数等。

正如OP所建议的,这可以通过从Stack构造函数调用Queue构造函数来实现,如下所示:

Stack<T> :: Stack() { queue = Queue<T>(); } 

相关内容

  • 没有找到相关文章

最新更新