类模板中函数参数问题

在MFC程序设计轻松入门这本书的38页中有一段程序:template<classT>classListNode{friendclassList<T>Public:List... 在MFC程序设计轻松入门这本书的38页中有一段程序:
template <class T>
class ListNode{
friend class List<T>
Public:
ListNode(T& t,ListNode<T>*p:data(p),next(p)){}; //(1)
protected:
T data;
ListNode* next;
}
而在其友元类List中有以下内容:
template<class T>
class List
{
.....
protected:
ListNode<T>*first
ListNode<T> * newNode(T& t,ListNode<T> *p)
{
ListNode<T> *q=new ListNode<T>(t,p); //(2)
return q;
}
}

在上面的程序中,(1)语句中的:data(p)表示什么,其中的p呢?
在(1)中ListNode有三个参数,而下面(2)中却只传入了两个参数,为什么
展开
 我来答
风若远去何人留
2014-03-10 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450136
专业C/C++软件开发

向TA提问 私信TA
展开全部
ListNode(T& t,ListNode<T>*p:data(p),next(p)){};

这种写法你确定能编译过?
应该是错误写法
从上下文上来看
正确写法应为
ListNode(T& t,ListNode<T>*p):data(p),next(p){}
即参数为t p 然后初始化时用p值赋给data和next两个变量
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式