cla*_*amp 0 c++ compiler-errors
我有一个编译错误,我不明白.我有ah/cpp文件组合,它不包含类,但只定义了一些实用程序函数.当我尝试使用在另一个类中定义的结构时,我得到错误:
错误C2027:使用未定义类型'B :: C'
所以,根据问题,h文件看起来像这样
namespace A {
void foo(B::C::SStruct const & Var);
}
Run Code Online (Sandbox Code Playgroud)
SStruct的定义属于另一个h文件中的类,当然也包括在内.
namespace B {
class C {
public:
struct SStruct { };
};
}
Run Code Online (Sandbox Code Playgroud)
奇怪的是,我可以在其他类中使用这个结构,它似乎与这个只包含实用函数的h文件有关.我在这里失踪了什么?谢谢!
小智 5
在纠正丢失的分号等之后,这将编译:
namespace B {
class C {
public:
struct SStruct { };
};
}
namespace A {
void foo(B::C::SStruct const & Var);
}
Run Code Online (Sandbox Code Playgroud)
显然,如果切换了两个名称空间的顺序,这将不起作用.可能你是#including你的标题错误的顺序.如果这是错误,这是糟糕的设计 - 您不应该在您的代码中允许标题顺序.
| 归档时间: |
|
| 查看次数: |
164 次 |
| 最近记录: |