gpt4 book ai didi

c++在参数中转发命名空间声明

转载 作者:行者123 更新时间:2023-11-30 02:16:41 27 4
gpt4 key购买 nike

我在命名空间中声明了一个类:

namespace PixelViewer
{
class FBO
{ ... }
}

我想将它用作另一个类方法中的参数,如下所示:

模型.h

class ShaderProgram;
class PixelViewer::FBO;

class Model
{
void Model::render(ShaderProgram& shaderProgram, PixelViewer::FBO& fbo)
}

模型.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;
}

关于c++在参数中转发命名空间声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54557954/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com