我将尝试在我的C++程序中使用typedef结构。当我编写下面的代码并尝试向类添加返回模板typedef结构指针的方法时,出现了错误。
StructSource.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: error: ‘IntStruct’ does not name a type
我无法解释为什么会出现这种情况。我缺少哪些类型信息?
User::IntStruct
。 - Xeo