【发布时间】:2015-03-07 09:48:20
【问题描述】:
template <class Object>
class ListNode
{
ListNode( const Object & theElement = Object( ), ListNode * n = NULL )
: element( theElement ), next( n ) { }
Object element;
ListNode *next;
friend class List<Object>;
friend class ListItr<Object>;
};
大家好,我正在为我的数据结构类编写一个程序,我应该使用我的导师提供的这个 .h 头文件。据我所知,Object 是一个模板参数。有人可以解释一下为什么 ListNode 构造函数中的 Object 后面有括号吗?
谢谢!
【问题讨论】:
-
你的 ListNode 构造函数是默认构造函数,也就是说,它的行为类似于
ListNode::ListNode()。因此它默认初始化其类的所有成员:在您的情况下,next为 nullptr,element为其默认值,即其默认构造函数的值,即Object::Object()
标签: c++ class templates parameters constructor