![]() |
1
4
您在“TestName”命名空间外转发声明了“class CPoolElement”,但在CTwo::GetElm的定义中找到的CPoolElement是在TestName命名空间中声明的类。 命名空间允许您将代码与其他类名分开,这些类名可能命名类似,但在其他头中声明,可能来自库或某些外部依赖项。这些是完全不同的类,可以做完全不同的事情。 当您在CTwo中转发声明的CPoolElement时。h、 您指定了您想要的CPoolElement类应该位于(声明)“global”命名空间中。然而,当编译器遇到GetElm的声明时,它发现了一个不同的类“TestName::CTwo”。 将前向声明移到TestName命名空间中,我认为您可以解决错误。 C两小时:
|
![]() |
2
1
这确实有点令人费解。但我认为可以通过将“classCPoolElement”移动到“CTwo.h”中的名称空间TestName中来解决这个问题。 这是因为您在CPoolElement中定义了TestName::CPoolElement。h、 但在CTwo中。h、 您正在引用::CPoolElement。确实存在不匹配。 |
![]() |
3
1
C两小时:
|
![]() |
notamaster · 匿名命名空间中的变量声明和其他位置的定义 2 年前 |
![]() |
Bipolo · 使用另一个命名空间的名称创建子命名空间 2 年前 |
![]() |
The Vivandiere · 从命名空间中引入单个名称 6 年前 |
![]() |
Bercovici Adrian · 静态类内定义的类的约束 6 年前 |
![]() |
shir k · 使用命名空间重载函数(&O) 6 年前 |
![]() |
yearntolearn · R包命名空间 6 年前 |
![]() |
ambikanair · 与特权pod共享装载命名空间 6 年前 |
![]() |
landau · 如何检查环境是否为包命名空间[重复] 6 年前 |