如何在C ++的另一个类的头文件中正确包含一个类的头文件?

时间:2015-04-15 14:54:54

标签: c++ stack queue include-path

我正在尝试使用两个堆栈来实现队列,所以我已经创建了一个功能齐全的类堆栈。创建队列头文件时,我包含了堆栈头文件。然后我在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);
}

1 个答案:

答案 0 :(得分:1)

void enqueue(int item)
{
   s1.push(item);
}

应该是

void queue::enqueue(int item)
{
   s1.push(item);
}