error C2027: Verwendung des undefinierten Typs - wie Sie erklären-Klasse

Habe ich folgende Fehlermeldung, wenn ich nur die definition der Klasse zuerst und dann erkläre es später. Mein Verständnis war, solange wir das tun, wie ich es schon unzählige Male für die definition einer Funktion, der compiler bekommt, es scheint aber mein Verständnis ist fehlerhaft kann mir jemand helfen zu verstehen, was fehlende Teil zu verstehen wie zu erklären. Klasse.

error C2027: use of undefined type 'generic_iterator'
note: see declaration of 'generic_iterator  

Funktioniert nicht - Fehler oben gezeigt

#include <iostream>
class generic_iterator;
class darray
{
public:
    typedef generic_iterator iterator;
    darray();
    darray(int size);
    ~darray();
    int& at(int index);
    int& operator [](int i);
    int* data(void);
    bool empty();
    void fill(int val);
    void print();
    size_t max_size();
    iterator begin() {return iterator(ptrarray); }
    iterator end() { return iterator(ptrarray + size); }

private:
    int *ptrarray;
    int num_elements;
    int size;
};

class generic_iterator
{
public:
    generic_iterator(int *ptr);
    ~generic_iterator();
    generic_iterator& operator++();     //pre-increment
    generic_iterator operator++(int);    //post-increment
private:
    int *iptr;
};

Funktioniert : Wenn die ganze Klasse, wird zuerst deklariert

class generic_iterator
{
public:
    generic_iterator(int *ptr);
    ~generic_iterator();
    generic_iterator& operator++();     //pre-increment
    generic_iterator operator++(int);    //post-increment
private:
    int *iptr;
};

class darray
{
public:
    typedef generic_iterator iterator;
    darray();
    darray(int size);
    ~darray();
    int& at(int index);
    int& operator [](int i);
    int* data(void);
    bool empty();
    void fill(int val);
    void print();
    size_t max_size();
    iterator begin() {return iterator(ptrarray); }
    iterator end() { return iterator(ptrarray + size); }

private:
    int *ptrarray;
    int num_elements;
    int size;
};
InformationsquelleAutor ifelse | 2015-11-27
Schreibe einen Kommentar