Avatar billede driis Nybegynder
21. august 2003 - 14:19 Der er 1 kommentar og
2 løsninger

STL List problem

Jeg skal lave en adapterklasse til STL list klassen, således at grænsefladen svarer til den, som er defineret i en abstrakt basisklasse, Buffer.

Buffer ser således ud:

template<class T>
class Buffer
{
public:
  virtual ~Buffer(){}
  virtual void put(T value) = 0;
  virtual T get() = 0;
  virtual bool isEmpty() = 0;
  virtual bool isFull() = 0;
  virtual int count() = 0;
};

Jeg har lavet headeren til adapterklaseen således:
#include <list>
#include "buffer.hpp"

template <class T>
class STLListBuffer : public Buffer<T>
{
public:
    STLListBuffer();
    ~STLListBuffer();
    void put(T value);
    T get();
    bool isEmpty();
    bool isFull();
    int count();
private:
    list<T> data ;
};

Når jeg forsøger at compile dette (MS VC++ 7) får jeg flg. fejl:
d:\PRG3\LAB1\STLList2Buffer.h(34) : error C2143: syntax error : missing ';' before '<'
        d:\PRG3\LAB1\STLList2Buffer.h(35) : see reference to class template instantiation 'STLListBuffer<T>' being compiled
d:\PRG3\LAB1\STLList2Buffer.h(34) : error C2501: 'STLListBuffer<T>::list' : missing storage-class or type specifiers
d:\PRG3\LAB1\STLList2Buffer.h(34) : error C2238: unexpected token(s) preceding ';'

Nogen der har nogen ide om hvad fejlen er, og hvad jeg skal gøre for at få det til at virke ?
Avatar billede jpk Nybegynder
21. august 2003 - 14:22 #1
Prøv at tilføje understående til din .h-fil

using namespace std;
Avatar billede chries Nybegynder
21. august 2003 - 14:23 #2
Prøv øverst i STLList2Buffer.h at tilføje:

using namespace std;
Avatar billede driis Nybegynder
21. august 2003 - 14:24 #3
Doh ! Tak skal i have.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester