我已经看到了类似的答案,但我似乎无法通过查看这些例子(例如这个或那个)来解决我的问题.
所以,我有这个.
啊
#ifndef INCLUDE_CLASS_NAME
#define INCLUDE_CLASS_NAME
#include <B.h>
using namespace C;
D::DPtr myvariable; <-- Error in here
#endif
Run Code Online (Sandbox Code Playgroud)
在包括Bh我有这个:
namespace C{
namespace E{
class D
{
public:
typedef shared_ptr<D> DPtr;
}
} //end of namespace E
} // end of namespace C
Run Code Online (Sandbox Code Playgroud)
为什么我在上述行中收到此错误:
'D' does not name a type
Run Code Online (Sandbox Code Playgroud)
我包含.h文件,它定义了类.我错过了什么?
符号D
位于命名空间内E
,位于命名空间内C
,因此完全限定名称为C::E::D
.
所以要么:
添加E::
以D
正确引用:
mutable E::D::DPtr myvariable;
Run Code Online (Sandbox Code Playgroud)E
也在using
指令中声明:
using namespace C::E;
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
247 次 |
最近记录: |