在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/

10-11 04:23