oka*_*ami 5 c++ templates struct
使用此代码(只是一类测试):
typedef unsigned short UInt16;
template<class T>
class CClass
{
public:
SValue* getNewSValue(void);
private:
typedef struct {
T *mValue;
T *next;
T *previous;
UInt16 index;
} SValue;
};
template<typename T>
SValue* CClass<T>::getNewSValue(void)
{
return new SValue;
}
Run Code Online (Sandbox Code Playgroud)
我有以下错误:
错误C2143:语法错误:缺少';' 在'*'之前
错误C4430:缺少类型说明符 - 假定为int.注意:C++不支持default-int
是否可以在类中使用Struct?如果我从类中声明结构,则模板不会看到模板T.
struct当您声明 的返回类型时,您似乎没有定义getNewSValue。
这样你就不会出现这个错误:
template<class T>
class CClass
{
public:
SValue* getNewSValue(void);
private:
typedef struct {
T *mValue;
T *next;
T *previous;
UInt16 index;
} SValue;
};
template<typename T>
SValue* CClass<T>::getNewSValue(void)
{
return new SValue;
}
Run Code Online (Sandbox Code Playgroud)
而且您还必须限定SValue返回类型,因为CClass当您使用它来定义getNewSValue.
| 归档时间: |
|
| 查看次数: |
8866 次 |
| 最近记录: |