我在命名空间中声明了一个类:
namespace PixelViewer
{
class FBO
{ ... }
}
我想在另一个类方法中将其用作参数,如下所示:
型号
class ShaderProgram;
class PixelViewer::FBO;
class Model
{
void Model::render(ShaderProgram& shaderProgram, PixelViewer::FBO& fbo)
}
型号
#include "../FBO.h"
#include "../ShaderProgram/ShaderProgram.h"
void Model::render(ShaderProgram& shaderProgram, PixelViewer::FBO& fbo)
但是,出现以下错误:
'PixelViewer' is not a class or namespace name
'FBO' uses undefined class PixelViewer
use of undefined type 'PixelViewer'
关于我所缺少的任何想法?
谢谢
最佳答案
此语法无效,因为PixelViewer
可以是 namespace 或类名称。因此,语法是不允许的:
class PixelViewer::FBO; // disallowed
相反,只需在相应的 namespace 中添加前向声明:
namespace PixelViewer {
class FBO;
}
关于c++ - 参数中的C++转发 namespace 声明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54557954/