Hallo, ich habe in C++ einen Header erstellt, aber bei der Complierung kommt immer diese Fehlermeldung:
C:\Users\Admin\AppData\Local\Temp\ccdaLGOT.o:lexer.cpp:(.text+0x111): undefined reference to `Token::content[abi:cxx11]() const'
...(Zu lang zum abschicken)
collect2.exe: error: ld returned 1 exit status
Kann mir jemand sagen was der Fehler ist und wie ich ihn behebe?
token.hpp:
#ifndef TOKEN_HPP_
#define TOKEN_HPP_
#include <string>
class Token {
public:
enum class Type {
STRING,
NUMBER,
BOOLEAN,
IDENTIFIER,
EQUAL,
PLUS,
MINUS,
TIMES,
DIVIDE,
LESS_THAN,
GREATER_THAN,
COMMENT,
DOT,
COMMA,
SEMICOLON,
CURLY_BRACKET_RIGHT,
CURLY_BRACKET_LEFT,
APOSTROPHE,
COLON,
UNEXPECTED
};
Token (Type type) noexcept;
Type type () const noexcept;
bool is (Type type) const noexcept;
bool is_not (Type type) const noexcept;
std::string content () const noexcept;
void change_content (std::string content) const noexcept;
void add_to_content (std::string content) const noexcept;
void clear_content () const noexcept;
void change_type (Type type) const noexcept;
private:
Type m_type;
std::string m_content;
};
#endif
token.cpp:
#include "token.hpp"
#include <string>
Token::Token(Type type) noexcept : m_type{type} {};
Token::Type Token::type() const noexcept {
return m_type;
}
bool Token::is(Type type) const noexcept {
return m_type == type;
}
bool Token::is_not(Type type) const noexcept {
return m_type != type;
}
std::string Token::content() const noexcept {
return m_content;
}
void Token::change_content(std::string content) const noexcept {
m_content = content;
}
void Token::add_to_content(std::string content) const noexcept {
m_content = m_content + content;
}
void Token::clear_content() const noexcept {
m_content.clear(); //Die clear Funktion geht auch nicht
}
void Token::change_type(Type type) const noexcept {
m_type = type;
}
Ich hoffe jemand kann mir dabei helfen!
LG