juvf, а если так:
bool f(const QDomElement& a);
ну это не совсем эквивалент. Потому что по прежнему нет копии которую можно безопасно модифицировать. Начитавшись документации можно создать клон методом cloneNode() внутри f и с ним работать. Но не совсем понятно зачем такой изврат?
Подход, имхо, вполне оправданный. Получается что-то похожее на работу с БД.
Ну если бы мне необходимо было передать в фунцию не копию а ссылку, я бы так и написал bool f(QDomElement& a). Ну если мне нужна именно копия, то bool f(QDomElement a). Это классический С++. Троли что-то новое изобрели прировняв "bool f(QDomElement a)" к "bool f(QDomElement& a)". Зачем??? Чтоб лишний раз не писать "&" и вводить в заблуждение? Они даже об этом не обмолвились ни словом в своем учебнике по Qt.
Ни когда не работал с БД. Может я еще не дорос до того, чтоб понять зачем таким "ходом канём" меняют концепцию С++.
ps "Копирующий конструктор" - в самом названии заложено то что он делает
конструирует новый и помещяет туда
копию. А у тролей ни то, ни другое.