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