«Это зависит».Не все классы имеют конструкторы копирования.Некоторые классы определяют clone()
, а другие наследуют его от Object
.
Если вы думаете о том, как реализовать семантику копирования в своем собственном классе, многие люди рекомендуют против клонирования, но другие рекомендуют это.Третий вариант - это статический фабричный метод, который выполняет эту работу.
Если вы пытаетесь сделать копию какого-либо существующего класса, вы находитесь в зависимости от существующей реализации.Может быть, у него есть clone()
, который делает то, что вы хотите, а может, нет.Может быть, у него есть конструктор копирования, а может и нет.