返回信息流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;这样。
要如何改正呢?
谢了!
这是一条镜像帖。来源:北邮人论坛 / cpp / #73615同步于 2013/9/5
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
请教关于template
jiaozi
2013/9/5镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
也只能这样了
我还在想能不能在类的内部使用模板
看来是不行了
【 在 iFadeToBlack 的大作中提到: 】
: template <typename T>
: class SQ
: {
: ...................
class SQ { Elem<int> a; ... }
class SQ { Elem<char> a; ...}
如果你的写法是对的,那么上面两种类型是否也该等价呢?
你如果一定要那么写的话,别把模板的类型参数暴露在类的类型里。
看一下COM的SAFEARRAY和CComSafeArray<T>的实现吧
【 在 jiaozi 的大作中提到: 】
: 也只能这样了
: 我还在想能不能在类的内部使用模板
: 看来是不行了