我下载了一个c ++项目,并且能够使用cmake生成的makefile编译它.
但是当我尝试在项目的一个.hh文件中添加我自己的一系列.h文件时,我开始得到一百万个错误,其中一个是:
错误:使用std :: cout对类范围内的非成员使用声明;
当包含的.h文件在
using std::cout其他地方使用时,它可以工作,但是当添加到此项目时,它会出现此错误.
可能是什么问题?
using std::cout;
using std::endl;
class TextManager : public FileManager {
public:
TextManager (const char * filename);
void scanFile (Image &image, Scene &scene);
void scanObjectModel (Image &image, Scene &scene);
void getImageData (Image &image);
void getMaterialData (Scene &scene);
void getLightData (Scene &scene);
void getSphereData (Scene &scene);
void getPlaneData (Scene &scene);
void getTriangleData (Scene &scene);
int getLineValue (int size);
void getLineValue2 (float (&lineNumbers) [10], Scene &scene, int &lineNumbersIndex);
void getVerticesValues (int initPos, Scene &scene);
private:
std::string line;
float fractionaryTenPowers [6];
};
Run Code Online (Sandbox Code Playgroud)
问题解决了.缺少一个括号来关闭引起它的其中一个类的声明.
错误意味着你已经完成了这个:
struct Foo {
using std::cout;
...
};
Run Code Online (Sandbox Code Playgroud)
这不是有效的C++,在类体中只能为基类成员添加using声明,而不是任意名称.
您只能using std::cout在命名空间范围或函数体内添加.