我正在尝试使用两个堆栈来实现队列,所以我已经创建了一个功能齐全的类堆栈。创建队列头文件时,我包含了堆栈头文件。然后我在queue.cpp文件中包含了queue.h。但是,当我编写使用堆栈对象的enqueue函数时,堆栈对象不可见,我不知道为什么。我做错了什么?
stack.h
using namespace std;
class stack
{
public:
stack(); //constructor
~stack();//deconstructor
void push(int); //puts int on the stack
void pop(); //removes int off the stack
void printStack();
private:
struct Node
{
int number;
Node* prev;
};
Node* top;
void readNode(Node* r);
};
queue.h
#include "stack.h"
class queue
{
public:
queue();
virtual ~queue();
void enqueue(int item);
void dequeue();
bool isEmpty() const;
private:
stack s1;
stack s2;
};
queue.cpp
#include "queue.h"
void enqueue(int item)
{
s1.push(item);
}
答案 0 :(得分:1)
void enqueue(int item)
{
s1.push(item);
}
应该是
void queue::enqueue(int item)
{
s1.push(item);
}