我正在尝试在我的 C++ 程序中使用 typedef 结构。我开始编写以下代码,直到尝试向我的类添加返回模板 typedef 结构指针的方法时收到错误。
结构源.h
template <typename T>
class StructSource {
public:
struct TestStruct{
T value;
};
};
User.h
#include "StructSource.h"
class User {
public:
typedef StructSource<int>::TestStruct IntStruct;
IntStruct *getIntStruct();
};
User.cpp
#include "User.h"
IntStruct *User::getIntStruct() {
return 0;
}
使用 GCC 编译时会出现以下错误。
User.cpp:3:1: 错误:“IntStruct”未命名类型
我无法解释为什么会出现这种情况。我缺少什么类型的信息?
“用户”也是一个“命名空间”(范围,实际上,正如大多数评论者指出的那样 - “命名空间”是为了快速回答)在这里,所以你必须使用
User::IntStruct *User::getIntStruct() {
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)