Конструктор копирования всегда принимает один параметр, ссылающийся на тип, к которому он относится, возможно другие параметры, но они должны иметь значения по умолчанию.
Конструктор копирования вызывается как функция копирования, и целью конструктора копирования является создание объекта типа с использованием объекта того же типа в качестве основы для создания нового типа.
Стандарт определяет, что конструктор копирования имеет тип:
T(const &T obj);
Это в основном позволяет создавать временные объекты во время вызова функций по значению или возвращать объекты типа по значению.
Этот синтаксисоблегчает создание нового объекта как:
T obj1(obj2); <--------- Direct Initialization
T obj1 = obj2; <--------- Copy Initialization
Если дополнительные аргументы, передаваемые конструктору копирования, не будут иметь обязательных значений по умолчанию, тогда создание объектов с использованием приведенного выше синтаксиса будет невозможно.
Отсюда и строгое условие:
там возможно других параметров в конструкторе копирования, но они должны иметь значения по умолчанию.