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

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

Archivo* arc;


产生:

error: ‘arc’ was not declared in this scope


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

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

有什么线索吗?

谢谢。

最佳答案

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

关于c++ - g++:未在此范围内声明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17014640/

10-11 23:20