[英]c++ forward namespace declaration in parameter
我在命名空間中聲明了一個類:
namespace PixelViewer
{
class FBO
{ ... }
}
我想在另一個類方法中使用它作為參數,如下所示:
Model.h
class ShaderProgram;
class PixelViewer::FBO;
class Model
{
void Model::render(ShaderProgram& shaderProgram, PixelViewer::FBO& fbo)
}
Model.cxx
#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
既可以是命名空間,也可以是類名。 所以語法是不允許的:
class PixelViewer::FBO; // disallowed
相反,只需在相應的命名空間中添加前向聲明:
namespace PixelViewer {
class FBO;
}
是的,您必須在命名空間中執行前向聲明:
namespace PixelViewer
{
class FBO;
}
請記住,它可能是命名空間,類或結構,因此編譯器必須知道它應該在內部使用哪一個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.