0
我有一个前向声明和命名空间的问题。下面的示例代码:命名空间和前向声明问题
namespace Waalkes
{
class Otto;
}
namespace Comedian
{
class MyClass : public ...
{
...
Waalkes::Otto getFun();
...
}
}
这应该是没有问题的,通常,“Waalkes ::奥托getFun()”是指在上面直接转发声明。不幸的是,有些程序员决定在这个代码中包含的头文件中定义了一个名为“Comedian :: Waalkes”的命名空间,因此编译器试图找到不存在的“Comedian :: Waalkes :: Otto”。
既然它不是一个可以摆脱这些丑陋的双重使用名称的选项:我有什么选择?是否有可能以某种方式定义getFun(),以便其返回值引用正确的名称空间“Waalkes ::奥托”,而不是‘命名空间喜剧演员’,因为封闭的‘喜剧演员:: Waalkes ::奥托?’一些家长样的命名空间占位符的可能?
谢谢!