在C++中,当我看到说xxxxx没有在yyy.h中命名类型的错误时
这意味着什么?yyy.h
已包括xxxx
所在的 header 。
例如,我使用:
typedef CP_M_ReferenceCounted FxRC;
并且我在
CP_M_ReferenceCounted.h
中包括了yyy.h
我缺少一些基本的了解,这是什么?
最佳答案
看来您需要相应地引用 namespace 。例如,以下yyy.h和test.cpp与您的问题相同:
//yyy.h
#ifndef YYY_H__
#define YYY_H__
namespace Yyy {
class CP_M_ReferenceCounted
{
};
}
#endif
//test.cpp
#include "yyy.h"
typedef CP_M_ReferenceCounted FxRC;
int main(int argc, char **argv)
{
return 0;
}
错误将是
...error: CP_M_ReferenceCounted does not name a type
但是添加一行“使用 namespace Yyy;”。解决了以下问题:
//test.cpp
#include "yyy.h"
// add this line
using namespace Yyy;
typedef CP_M_ReferenceCounted FxRC;
...
因此,请检查.h header 中的 namespace 范围。
关于c++ - 没有在C++中命名类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1761018/