我已经彻底搜索了关于 SO 的类似主题,但一无所获。搜索“未在此范围内声明”会产生很多结果,但我认为这是不同的。
基本上,以下行(在某类.cpp 文件中):
Archivo* arc;
生成:
error: ‘arc’ was not declared in this scope
选择不同的变量名没有区别。包括存档类。
如果我尝试在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;