что эквивалентно этой строке кода в c ++ с использованием библиотеки QT? - PullRequest
0 голосов
/ 24 февраля 2011

Учитывая объявления

   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 ]

5 голосов
/ 24 февраля 2011

Знак & в объявлении указывает, что эта переменная является ссылкой, т.е. bufs не создает новую копию вывода, а просто ссылается на объект, который ей назначен. В этом контексте ссылочные типы можно рассматривать как псевдоним для объекта, которому они назначены.

RHS выражения довольно прост: ищите целое число из списка fds по индексу i, а затем используйте это значение, чтобы получить соответствующий Dbuffer из карты.

1 голос
/ 24 февраля 2011

Это ссылка.Это означает, что вы создаете псевдоним некоторого элемента из buffer.Изменения в псевдониме также отражаются в элементе буфера

...