Основное различие между конструктором копирования и оператором присваивания заключается в том, что конструктор копирования — это тип конструктора, который помогает создать копию уже существующего объекта, не затрагивая значения исходного объекта, тогда как оператор присваивания — это оператор, который помогает присвоить новое значение переменной в программе.
Конструктор — это специальный метод, который помогает инициализировать объект при его создании. Он имеет то же имя, что и имя класса , и не имеет возвращаемого типа. Программист может написать конструктор, чтобы присвоить начальные значения переменным экземпляра в классе. Если в программе нет конструктора, будет вызван конструктор по умолчанию. Конструктор копирования — это тип конструктора, который помогает создать копию существующего объекта. С другой стороны, оператор присваивания помогает присвоить новое значение переменной.
1. Что такое конструктор копирования?
– Определение, функциональность
2. Что такое оператор присваивания?
– Определение, функциональность
3. В чем разница между конструктором копирования и оператором присваивания?
– Сравнение ключевых отличий
Конструктор, Конструктор копирования, Оператор присваивания, Переменная
В программировании иногда необходимо создать отдельную копию объекта, не затрагивая исходный объект. В таких ситуациях полезен конструктор копирования. Позволяет создать реплику существующего объекта того же класса. См. пример ниже.
Рисунок 1: Программа с копией конструктора
Класс Triangle имеет две переменные экземпляра, называемые base и height. В строке 8 находится параметризованный конструктор. Нужны два аргумента. Эти значения присваиваются переменным base и height экземпляра. В строке 13 находится конструктор копирования. Требуется аргумент типа треугольника. Новое базовое значение объекта присваивается базе переменной экземпляра. Точно так же новое значение высоты объекта присваивается высоте переменной экземпляра. Кроме того, существует метод calArea для вычисления и возврата площади.
В основном методе t1 и t2 являются объектами Triangle. Объект t1 передается при создании объекта t2. Конструктор копирования вызывается для создания объекта t2. Следовательно, основание и высота объекта t2 такие же, как основание и высота объекта t1. Наконец, оба объекта имеют одинаковую площадь.
Оператор присваивания полезен для присвоения нового значения переменной. Оператор присваивания — «=». Когда есть такое утверждение, как c = a + b; сумма «a» и «b» присваивается переменной «c».
Рисунок 2: Программа с оператором присваивания
Номер класса имеет переменную экземпляра с именем num. В строке 7 нет конструктора параметров. Однако в строке 9 есть параметризованный конструктор. Он принимает аргумент и присваивает его переменной экземпляра с помощью оператора присваивания. В строке 12 есть метод display для отображения числа. В основном методе num1 и num2 — это два объекта типа Number. Печать num1 и num2 предоставляет ссылки на эти объекты. Число 3 имеет тип Число. В строке 24 num1 присваивается num3 с помощью оператора присваивания. Следовательно, num3 относится к объекту num1. Следовательно, распечатка num3 дает ссылку num1.
Оператор присваивания и его варианты следующие.
Оператор | функциональность | Пример |
знак равно | Присваивает правый операнд левому операнду | г = х + у |
+= | Добавить правый операнд к левому операнду и присвоить результат левому операнду | z + = y эквивалентно z = z + y |
знак равно | Вычесть правый операнд из левого операнда и присвоить результат левому операнду. | z – = y эквивалентно
г = г -у |
знак равно | Умножает правый операнд на левый операнд и присваивает результат левому операнду. | z * = y эквивалентно
г = г * у |
знак равно | Разделите левый операнд на правый операнд и присвойте ответ левому операнду. | z / = y эквивалентно
г = г / у |
знак равно | Возьмите модуль с двумя операндами и присвойте ответ левому операнду. | z% = y эквивалентно
г = г% у |
<<= | Сдвиг влево и оператор присваивания | z << 5 эквивалентно
г = г <<5 |
>> = | Сдвиг вправо и оператор | z >> 5 эквивалентно
г = г >> 5 |
знак равно | Оператор присваивания битов и AND | z & = 5 эквивалентно
г = г & 5 |
^ = | Оператор присваивания и побитовое исключающее ИЛИ | z ^ = 5 эквивалентно
г = г ^ 5 |
| знак равно | Оператор присваивания и побитовое включающее ИЛИ | г | = 5 эквивалентно z = z | 5 |
Конструктор копирования — это специальный конструктор для создания нового объекта как копии существующего объекта. Напротив, оператор присваивания — это оператор, который используется для присвоения нового значения переменной. Эти определения объясняют основную разницу между конструктором копирования и оператором присваивания.
Функциональность объекта также является важным отличием конструктора копирования от оператора присваивания. Конструктор копирования инициализирует новый объект существующим объектом, а оператор присваивания присваивает значение объекта другому объекту, который уже существует.
Конструктор копирования помогает создать копию существующего объекта, а оператор присваивания помогает присвоить новое значение переменной. Это еще одно различие между конструктором копирования и оператором присваивания.
Разница между конструктором копирования и оператором присваивания заключается в том, что конструктор копирования — это тип конструктора, который помогает создать копию уже существующего объекта, не затрагивая значения исходного объекта, в то время как оператор присваивания — это оператор, который помогает присвоить новый значение переменной в программе.
Перед публикацией, советую ознакомится с правилами!