【发布时间】:2012-05-29 14:36:19
【问题描述】:
我正在尝试在我的 C++ 程序中使用 typedef 结构。我开始编写以下代码,直到尝试向我的类添加返回模板 typedef 结构指针的方法时收到错误。
StructSource.h
template <typename T>
class StructSource {
public:
struct TestStruct{
T value;
};
};
用户.h
#include "StructSource.h"
class User {
public:
typedef StructSource<int>::TestStruct IntStruct;
IntStruct *getIntStruct();
};
用户.cpp
#include "User.h"
IntStruct *User::getIntStruct() {
return 0;
}
使用 GCC 编译时会出现以下错误。
User.cpp:3:1: 错误:“IntStruct”没有命名类型
我不知道为什么会这样。我缺少什么类型的信息?
【问题讨论】:
-
在我寻找重复问题时快速回答:使用
User::IntStruct。