2016-06-05 16 views
-1

Bär mit mir hier, wie ich komme aus einem reinen Java/Python-Hintergrund und haben etwa 10% Kenntnisse in Grundlagen von C++.Empfangen "erwartete unqualifizierte-id" beim Erstellen einer Funktion

Ich Definition einer tokenising Klasse für einen Lexer und haben bereits in ein Problem laufen, mit dem Eclipse-Compiler Werfen:

erwartet unqualifizierte-ID

Thats it. Keine Information überhaupt. Derselbe Fehler taucht auf, egal was ich meine Funktion nenne. Ich denke, es kann mit der Art und Weise zu tun, habe ich vector<string> tokenise bin mit, aber ich habe keine Ahnung, ...

ich mein Setup h und cpp Datei wie folgt:

lexer.h

#ifndef LEX_LEXER_H_ 
#define LEX_LEXER_H_ 

#include <string> 
#include <vector> 
using namespace std; 

struct token; 

vector<token> tokenise(vector<string> data); 

#endif /* LEX_LEXER_H_ */ 

lexer.cpp

#include <iostream> 
using namespace std; 

enum token_type { 
    // Operations. 
    ADD, SUB, MUL, DIV, MOD, 
    // Bitwise operations. 
    BITL, BITR, 
    // Keywords. 
    DEFINE, 
    // Primitives. 
    INT, FLOAT, CHAR, STRING, BOOL 
}; 

struct token { 
    token_type type; 
    string data; 
}; 

vector<token> tokenise(vector<string> data) { // <<< throwing the error 
    vector<token> tokens; 
    for (string s : data) { 
     for (char& c : s) { 
      cout << c << endl; 
     } 
    } 
    return tokens; 
} 
+0

einbinden Tipp: Verschmutzen Sie nicht Ihren globalen Namespace mit 'using namespace std;' in einer Header-Datei –

+0

@PiotrSkotnicki Danke für den Tipp! Darf ich fragen, warum ** nicht **? – finnrayment

+0

http://Stackoverflow.com/q/1452721/3953764 –

Antwort

2

Sie müssen lexer.h in lexer.cpp

+2

* seufz * ... Lass mich einfach in der Ecke schnell weinen ... – finnrayment

+0

Ich kann einfach nicht glauben, dass es so einfach war. Vielen Dank. – finnrayment