2009-05-28 10 views
0

Ich bin ein Buch über Datenstrukturen zu lernen, und erfüllen ihre Knoten in verketteten Liste Beispiel, und ich erhalte diesen Fehler:VerketteteListe Knoten in C +

and Everything.cpp|7|error: expected unqualified-id before "int"| 
and Everything.cpp|7|error: expected `)' before "int"| 
||=== Build finished: 2 errors, 0 warnings ===| 

Der Code für den Knoten ist:

typedef struct Node 
{ 
    struct Node(int data) //Compile suggest problem is here 
    { 
     this-> data = data; 
     previous = NULL; 
     next = NULL; 
    } 
    int data; 
    struct Node* previous; 
    struct Node* next; 
} NODE; 

Ich bin nicht vertraut mit Strukturen und ich verwende Code :: Blöcke zu kompilieren. Weiß jemand, was falsch ist?

+0

Ich bin nicht sicher, ob ich dem Autor dieses Datenstrukturbuchs mit C++ vertraue. Es ist nicht nötig, "struct Node *" zu verwenden ("Node *" reicht aus) oder defnode als NODE einzugeben. Es kann nicht für die Kompatibilität mit C getan worden sein, da die Struktur einen Konstruktor hat. Ungerade. Vielleicht ist es sehr alt. –

Antwort

5

Das Codebeispiel ist falsch. Das Schlüsselwort struct sollte nicht vor der Konstruktordeklaration stehen. Es sollte sein:

typedef struct Node 
{ 
    Node(int data) // No 'struct' here 
    { 
     this-> data = data; 
     previous = NULL; 
     next = NULL; 
    } 
    int data; 
    struct Node* previous; 
    struct Node* next; 
} NODE;