C++嵌套继承错误"expected class-name before ‘{’ token"
C++ nested inheritance error "expected class-name before ‘{’ token"
所以我在尝试编译我的项目时收到以下编译错误:
g++ -Wall -c --std=c++11 source.cpp token.cpp
g++ -Wall -c --std=c++11 pascalToken.cpp
pascalWordToken.hpp:7:1: error: expected class-name before ‘{’ token
g++ -Wall -c --std=c++11 pascalWordToken.cpp
pascalWordToken.hpp:7:1: error: expected class-name before ‘{’ token`
以下代码已被截断以保持帖子尽可能小,我希望所有相关部分都存在。
令牌.hpp 基类接口
#ifndef TOKEN_HPP
#define TOKEN_HPP
#include "source.hpp"
class Token {
public:
Token(Source& source_ref);
// public getter methods
protected:
// protected member variables
void extract();
// more code ...
};
#endif // TOKEN_HPP
令牌.cpp基类源
#include "token.hpp"
Token::Token(Source& source_ref)
{
// initialization of some member variables
extract();
}
void Token::extract()
{
// some code
}
pascalToken.hpp 文件
#ifndef PASCAL_TOKEN_HPP
#define PASCAL_TOKEN_HPP
#include "token.hpp"
#include "source.hpp"
class PascalToken : public Token
{
protected:
PascalToken(Source& source_ref);
};
#endif // PASCAL_TOKEN_HPP
pascalToken.cpp 文件
#include "pascalToken.hpp"
PascalToken::PascalToken(Source& source_ref) : Token(source_ref) {}
pascalWordToken.hpp 文件
#ifndef PASCAL_WORD_TOKEN_HPP
#define PASCAL_WORD_TOKEN_HPP
#include "token.hpp"
#include "pascalToken.hpp"
#include "source.hpp"
class PascalWordToken : public PascalToken
{
public:
PascalWordToken(Source& source_ref);
protected:
void extract();
};
#endif // PASCAL_WORD_TOKEN_HPP`
pascalWordToken.cpp 文件
#include "pascalWordToken.hpp"
PascalWordToken::PascalWordToken(Source& source_ref) : PascalToken(source_ref)
{}
void PascalWordToken::extract()
{
// code ...
}
编辑:
源.hpp 文件
#ifndef SOURCE_HPP
#define SOURCE_HPP
#include <fstream>
#ifndef EOF
#define EOF ' ' // end-of-file
#endif
#define EOL 'n' // end-of-line
class Source {
public:
Source(std::ifstream& reader_ref);
// some code ....
private:
std::ifstream& m_reader_ref;
// some private member variables/methods
protected:
// some protected member variables
};
#endif // SOURCE_HPP
源.cpp文件
#include "source.hpp"
#include <execinfo.h>
#include <unistd.h>
Source::Source(std::ifstream& reader_ref) : m_reader_ref(reader_ref) {}
请注意,代码已被严重截断,项目中还有更多文件,但它们都可以很好地编译,直到我包含 pascalWordToken 接口才出现错误。
我假设你的 #include"pascalToken.hpp"在pascalWordToken.hpp文件中不起作用。尝试用类 PascalToken 替换它;并将其包含在 cpp 文件中。
相关文章:
- Arduino无法编译名为SP:"Expected ')' before '(' token"的变量
- 为什么我的功能在使用 goto 时会给我带来"expected primary-expression before '}' token"?
- 使用结构和数组时的"expected primary expression before '.' token"
- 如何解决"Expected expression before " = " token"?
- 错误:创建模板类时"expected unqualified-id before '{' token"
- 如何解决"expected constructor, destructor, or type conversion before ‘(’ token"错误?
- 这个编译器错误是什么意思 - "qualified-id in declaration before ‘=’ token" C++?
- 获取链表上的"expected ‘)’ before ‘&’ token"到 BST 构造函数签名
- 使用宏访问指向数据成员的指针会导致"error: expected unqualified-id before ‘*’ token"
- "error: expected primary-expression before '<=' token" 我做错了什么?
- 内存集调用位置的"error: expected constructor, destructor, or type conversion before '(' token"
- 设置if流,获取'error: expected initializer before ‘.’ token'
- 在2D伊辛模型上工作。C++新手。我在第 23 行收到错误"expected unqualified-id before '{' token"
- 我的代码看起来不错。为什么我要得到"error: expected primary-expression before ')' token"?
- 如何修复"Expected Primary-expression before ')' token"错误?
- C++错误"tabulate.cc:19: error: expected primary-expression before ',' token"
- 使用多个文件时"array bound is not an integer constant before ']' token"
- "expected initializer before '<' token"尝试模板成员专用化
- 为什么海湾合作委员会说"a function-definition is not allowed here before '{' token"?
- C++:"error: expected ',' or '...' before '(' token"