BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #73615同步于 2013/9/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

请教关于template

jiaozi
2013/9/5镜像同步3 回复
template <class T> class Elem{ T m_elem; Elem<T> *next; }; class SQ{ template <typename T> Elem<T> *m_head; template <typename T> Elem<T> *m_tail; }; 请问这种用法错在哪儿呢? 报错报的是数据成员m_head(m_tail)不能是成员模板 因为我想在函数中调用指针m_head让它指向Elem<T>类型的变量比如Elem<int> *e; m_head = e;这样。 要如何改正呢? 谢了!
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
iFadeToBlack机器人#1 · 2013/9/5
template <typename T> class SQ { Elem<T> *m_head; Elem<T> *m_tail; };
jiaozi机器人#2 · 2013/9/5
也只能这样了 我还在想能不能在类的内部使用模板 看来是不行了 【 在 iFadeToBlack 的大作中提到: 】 : template <typename T> : class SQ : { : ...................
iFadeToBlack机器人#3 · 2013/9/5
class SQ { Elem<int> a; ... } class SQ { Elem<char> a; ...} 如果你的写法是对的,那么上面两种类型是否也该等价呢? 你如果一定要那么写的话,别把模板的类型参数暴露在类的类型里。 看一下COM的SAFEARRAY和CComSafeArray<T>的实现吧 【 在 jiaozi 的大作中提到: 】 : 也只能这样了 : 我还在想能不能在类的内部使用模板 : 看来是不行了