+ -
当前位置:首页 → 问答吧 → 数据结构书上的代码?

数据结构书上的代码?

时间:2010-08-30

来源:互联网

template<class Object>

class List
{
    private:
        struct Node
        {
            Node   *prev;
            Node   *next;
            Object data;
            Node(const Object &d = Object(),Node *p = NULL,Node *n = NULL):data(d),prev(p),next(n){}
        };
const Object &d = Object( )
这个是怎么回事?
初始值是为多少啊?

作者: liumilan2009   发布时间: 2010-08-30

本帖最后由 shang2010 于 2010-08-30 10:28 编辑

Node(const Object &d = Object(),Node *p = NULL,Node *n = NULL)
:data(d),prev(p),next(n)
{}

这个代码风格有点怪异,但老外就有人这么写,据说可以提高编译后代码的质量,

类似代码如下
Node(const Object &d = Object(),Node *p = NULL,Node *n = NULL)//正常函数
{data=d;
prev=p;
next=n;}


===
const Object &d = Object()//就是引用变量的意思,如果函数没有默认调用参数(对象),则默认调用Object()返回一个对象

作者: shang2010   发布时间: 2010-08-30

我刚进行测试了一下,这样写初始化d的值是为0。

作者: liumilan2009   发布时间: 2010-08-30

Object只是对象吧
若Object是int类型

const int &b = int();
这个int()不是函数吧。

这种写法真的很诡异,没见过

作者: liumilan2009   发布时间: 2010-08-30

热门下载

更多