C++ g++;:未在此范围中声明

C++ g++;:未在此范围中声明,c++,g++,C++,G++,我已经彻底搜索了一条类似的线索,但什么也没找到。搜索“未在此范围内声明”会产生很多结果,但我认为这是不同的 基本上,以下行(在CertainClass.cpp文件中): 生成: error: ‘arc’ was not declared in this scope 选择不同的变量名没有区别。包括Archivo类 如果我尝试在CertainClass.h文件中定义这样的指针,它编译时不会出现问题 有什么线索吗 谢谢。源文件的全局作用域中似乎没有Archivo类型。您可以使用g++-E对文件进行预

我已经彻底搜索了一条类似的线索,但什么也没找到。搜索“未在此范围内声明”会产生很多结果,但我认为这是不同的

基本上,以下行(在CertainClass.cpp文件中):

生成:

error: ‘arc’ was not declared in this scope
选择不同的变量名没有区别。包括Archivo类

如果我尝试在CertainClass.h文件中定义这样的指针,它编译时不会出现问题

有什么线索吗


谢谢。

源文件的全局作用域中似乎没有
Archivo
类型。您可以使用
g++-E
对文件进行预处理,然后进行分析,找出文件未定义或超出范围的原因。

检查以确保未定义类实例或其他也称为Archivo的对象。例如,以下操作失败:

class Foo {
} Foo;

int main() {
    Foo* boo;
}
错误:

test.cpp: In function ‘int main()’:
test.cpp:5: error: ‘boo’ was not declared in this scope
发生错误的原因是
*
被解释为名为
Foo
的对象和名为
boo
的对象之间的
*
操作

若要查看这是否真的是您的错误,请尝试编写

class Archivo *arc;

请构造一个最小的测试用例。听起来有点像循环include。这是您收到的唯一错误消息吗?看起来上面有一些错误,比如缺少;。我会调查一下。我必须说,删除该行可以使编译成功完成。我不确定我是否可以做一个最小的测试用例,我将不得不挖掘更多。谢谢你的回答!就这样!非常感谢你!
class Archivo *arc;