宣言を考えると
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]];
}
宣言の&は、この変数が参照であることを示します。つまり、bufsは出力の新しいコピーを作成せず、それに割り当てられたオブジェクトを参照するだけです。このコンテキストでの参照型は、割り当てられているオブジェクトのエイリアスと考えることができます。
式のRHSは非常に単純です。インデックスiでfdsリストから整数を検索し、この値を使用して、マップから対応するDbufferを取得します。
参考です。これは、からいくつかのアイテムのエイリアスを作成することを意味しますbuffer
。エイリアスの変更は、バッファのアイテムにも反映されます