0

我已经彻底搜索了关于 SO 的类似主题,但一无所获。搜索“未在此范围内声明”会产生很多结果,但我认为这是不同的。

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

Archivo* arc;

生成:

error: ‘arc’ was not declared in this scope

选择不同的变量名没有区别。包括存档类。

如果我尝试在CertainClass.h 文件中定义一个类似的指针,它可以毫无问题地编译。

有什么线索吗?

谢谢。

4

2 回答 2

1

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

于 2013-06-09T23:23:25.477 回答
1

检查以确保您没有定义类实例或其他也称为 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

发生错误是因为*被解释为一个名为的对象和一个名为的对象*之间的操作。Fooboo

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

class Archivo *arc;
于 2013-06-10T19:17:10.313 回答