Member 12702056 Ответов: 1

Что такое конструктор копирования? Зачем мы его используем? Я имею в виду, особенно на языке C++


Пожалуйста, помогите мне, и если кто-то знает ответ,Пожалуйста, объясните ясно и легко :)
Заранее спасибо :)
Что такое конструктор копирования?зачем мы его используем?в чем Его отличие от стандартного конструктора?

Что я уже пробовал:

Вообще-то я читал об этом,но не могу понять.Что такое конструктор копирования?зачем мы его используем?почему мы должны использовать его?
но также я не могу найти четкой информации об этом :) Многие статьи об этом написаны непросто.

1 Ответов

Рейтинг:
5

Maciej Los

Самое простое-узнать, что такое copy contrsuctor в c++, - это прочитать документацию.

Цитата:
Конструктор копирования класса T - это не шаблонный конструктор, первым параметром которого является T&, const T&, volatile T& или const volatile T&, и либо других параметров нет, либо все остальные параметры имеют значения по умолчанию.

Источник: Конструкторы копирования - cppreference.com[^]

Подробнее на:
Конструктор Копирования C++ [^]
Конструкторы копирования и операторы присваивания копирования (C++)[^]


Member 12702056

Спасибо:), но на самом деле я читал об этом, когда писал.
Однако почему мы должны копировать объект ?почему это так важно?
Я имею в виду,что если это не будет важно, компилятор не должен вызывать его автоматически.Это означает, что это важно для программы.Но почему? - читаю я, но до сих пор не могу найти ответа на свой этот вопрос

[no name]

Начните с изучения того, как правильно использовать Google, серьезно : http://stackoverflow.com/questions/3278625/when-do-we-have-to-use-copy-constructors

Member 12702056

Спасибо :)

Philippe Mori

Внимательно прочитайте документацию по каждой ссылке, и вы должны понять, что такое копирование.

По сути, конструктор копирования - это код, который выполняется при создании копии существующего объекта. Они используются потому, что они полезны для написания эффективной программы.

Если вы не очень заботитесь о производительности, вы можете использовать язык более высокого уровня, например C# или Java, который имеет сборщик мусора, и вам не придется так много иметь дело с деталями низкого уровня.

С другой стороны, у вас есть C или даже ассемблер, где вам нужно позаботиться обо всех деталях самостоятельно.

Member 12702056

Большое вам спасибо :)