I am using c++ to make a lexical analyzer for one of my classes and am having a problem with the contents of my header file being included in my source files. I #include the header file into my source files but it keeps saying that it can't find the members included. 

The header file is:

```
#include <string>
#include <iostream>

enum TokenType {
    ID,         // identifier
    STR,        // string
    INT,        // integer constant
    PLUS,       // the + operator
    STAR,       // the * operator
    LEFTSQ,     // the [
    RIGHTSQ,    // the ]
    PRINT,      // print keyword
    SET,        // set keyword
    SC,     // semicolon
    LPAREN,     // The (
    RPAREN,     // the )
    DONE,       // finished!
    ERR,        // an unrecoverable error
};

class Token {
private:
    TokenType   tok;
    std::string lexeme;

public:
    Token() : tok(ERR), lexeme("") {}
    Token(TokenType t, std::string s) : tok(t), lexeme(s) {}

    TokenType   getTok() const      { return tok; }
    std::string getLexeme() const   { return lexeme; }

    friend bool operator==(const Token& left, const Token& right) {
        return left.tok == right.tok;
    }

    friend std::ostream& operator<<(std::ostream& out, const Token& t);
};

extern  int linenum;
extern  Token   getToken(std::istream* instream);

```

While I have this part of code from one of the files that has multiple errors:

```
 map<Token::TokenType,int> tokenCount;
    map<string,int> lexemeCount;
    Token t;

    while( (t = getTok(br)) != Token::TokenType::DONE && t !=Token::TokenType::ERR ) {
        tokenCount[t.getType()]++;
        if( t == Token::TokenType::VAR
           || t == Token::TokenType::SCONST
           || t == Token::TokenType::ICONST ) {
            lexemeCount[t.getLexeme()]++;
        }

```

I am sure this is an easy fix but I'm not sure how to fix this. I been trying to fix it for a couple of days now and can't figure it out.