0

我试图创建一个从列表继承的队列并得到这个错误:

"error: expected class-name before '{' token"

这些是我拥有的代码...

cola_lista.cpp

#ifndef cola_hereda_lista
#define cola_hereda_lista

#include <iostream>
#include "lista_t.hpp"
//#include "nodo_t.hpp"

using namespace std;

template <class T>

class cola : public lista{
    private:
        nodo<T> *frente, *final;
    public:
        cola();
        bool es_vacia();
        int longitud(); //  
        void encolar(T e);
        void desencolar(); //precondicion ¬es_vacia
        T obtener_frente(); //precondicion ¬es_vacia
        ~cola();    
};

#endif

列表.hpp

#ifndef lista_template
#define lista_template

#include <iostream>
#include "nodo_t.hpp"

using namespace std;

template <class T>

class lista{
    private:
        nodo<T> *primero, *ultimo;
        int cantidad;
    public:
//
};

节点.hpp

#include <iostream>

#ifndef nodo_template
#define nodo_template

using namespace std;

template <class T>

class nodo{
    private:

        T elemento;
        nodo<T> *siguiente;

    public:

        nodo();
        T get_elem();
        void set_elem(T e);
        nodo<T>* get_siguiente();
        void set_siguiente(nodo<T> *sigui);
        ~nodo();
};

我花了好几个小时试图弄清楚代码中的不当之处。帮助!

4

2 回答 2

1

将您的代码更改为此

template <class T>
class cola : public lista<T>{
于 2013-05-12T01:37:39.100 回答
0

您需要调整您的声明cola

template <class T>
class cola : public lista<T>
                         ^^^

cola是一个类模板,你需要指定类型。另外,您不应该放入using namespace std;头文件,我一般会劝阻您不要使用它,这个先前的线程Why is 'using namespace std;' 在 C++ 中被认为是一种不好的做法?进入为什么。

于 2013-05-12T01:38:38.747 回答