错误:使用std :: cout对类范围内的非成员使用声明

use*_*471 4 c++

我下载了一个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)

问题解决了.缺少一个括号来关闭引起它的其中一个类的声明.

Jon*_*ely 9

错误意味着你已经完成了这个:

struct Foo {
  using std::cout;
  ...
};
Run Code Online (Sandbox Code Playgroud)

这不是有效的C++,在类体中只能为基类成员添加using声明,而不是任意名称.

您只能using std::cout在命名空间范围或函数体内添加.