什么是使用QT库的c ++中这行代码的等价物?

时间:2011-02-24 11:47:35

标签: c++ qt pointers qt4 qlist

鉴于声明

   class DBuffer
{
//...
};

typedef QList<DBuffer*> DBuffers;
QList<int> fds;
QMap<int, DBuffers> buffers; 

下面给出的函数中的代码行是什么意思。

function()
{
 // what does this line mean? what is "&bufs"

    DBuffers &bufs=buffers[fds[i]];
}

2 个答案:

答案 0 :(得分:5)

&amp;在声明中表明此变量是一个引用,即bufs不会创建输出的新副本,而只是引用分配给它的对象。此上下文中的引用类型可以被视为它们所分配的对象的别名。

表达式的RHS非常简单:通过索引i从fds列表中查找一个整数,然后使用该值从地图中获取相应的Dbuffer。

答案 1 :(得分:1)

是参考。这意味着您可以从buffer创建某个项目的别名。别名的更改也反映在缓冲区的项目