Конструктор копирования по умолчанию, или неявный, предоставляемый компилятором, создает поверхностные копии всех элементов и имеет следующую подпись:
descriptor(const descriptor &other);
, поэтому передача ссылки на дескриптор не будет отличаться от попытки (вНа языке C), чтобы передать копию - на самом деле они оба были бы просто переданы по ссылке.
Если бы элемент был объявлен как ссылочный тип, то, как и для указателей, его тип не совпадал бы с приведенным выше., неявное, конструктор копирования и присвоение ссылки будут выполнены, что сделает недействительной любую попытку создать локальную копию в каждом объекте.