Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
3 / 3 / 2
Регистрация: 07.02.2013
Сообщений: 185
1

Конструктор копирования

27.08.2015, 15:33. Показов 1446. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Конструктор копирования в качестве параметра принимает ссылку на экземпляр типа класса.
Вопрос заключается, почему именно "ссылка"?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.08.2015, 15:33
Ответы с готовыми решениями:

Не могу сделать чтобы класс содержал основной конструктор и конструктор копирования
Разработать класс ThreeAngle для работы с плоскими треугольниками. В качестве членов-данных...

Конструктор класса, конструктор копирования запускается не тот который нужен
Есть такой конструктор: Neuron::Neuron(int iType_activation_funk) { this->iType_act =...

Не могу правильно сделать конструктор и конструктор копирования и принадлежность точки с заданными координатами треугольнику
#include "stdafx.h" #include <iostream> #include <conio.h> #include <windows.h> #include...

Конструктор инициализации, конструктор копирования, деструктор
Я сделал почти задание по перегрузке операторов. Осталось одно, тоесть три: конструктор...

12
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
27.08.2015, 15:38 2
Цитата Сообщение от levgen Посмотреть сообщение
почему именно "ссылка"?
Чтобы не было рекурсивного копирования.
2
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
27.08.2015, 15:39 3
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

Цитата Сообщение от levgen Посмотреть сообщение
Вопрос заключается, почему именно "ссылка"?
Банально, если не ссылка, то нужно будет построить копию, чтобы построить копию, нужен конструктор копирования, а ему передается копия объекта, значит нужно построить копию, а чтобы построить копию, нужно вызвать конструктор копий, а если вызвать конструктор копирования, который принимает копию, то нужно построить копию объекта, а чтобы построить копию объекта, нужен конструктор копий, а он принимает копию объекта, значит нужно вызвать конструктор копий, чтобы построить копию объекта, а чтобы построить копию объекта, нужен конструктор копирования, а раз он принимает копию объекта, то нужно будет эту копию построить, а чтобы её построить, нужен конструктор копий... так яснее?
2
castaway
27.08.2015, 15:42
  #4

Не по теме:

Croessmah, твоя скорость начала тебя подводить...

0
Croessmah
27.08.2015, 15:46
  #5

Не по теме:

Цитата Сообщение от castaway Посмотреть сообщение
твоя скорость начала тебя подводить...
эт не моя скорость, это я тебе просто тоже фору дал :D так что в рассчете :)

0
3 / 3 / 2
Регистрация: 07.02.2013
Сообщений: 185
27.08.2015, 15:50  [ТС] 6
castaway, вопрос следующий возникает - а каким образом оно у нас возникает это рекурсивное копирование?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
27.08.2015, 15:53 7
Цитата Сообщение от levgen Посмотреть сообщение
а каким образом оно у нас возникает это рекурсивное копирование?
Разве из ответа Croessmah это не ясно?
0
3 / 3 / 2
Регистрация: 07.02.2013
Сообщений: 185
27.08.2015, 15:58  [ТС] 8
Tulosba, суть ясна, хотелось бы формулировки
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
27.08.2015, 16:00 9
Цитата Сообщение от levgen Посмотреть сообщение
хотелось бы формулировки
Формулировки чего? Что такое "рекурсия"?
0
3 / 3 / 2
Регистрация: 07.02.2013
Сообщений: 185
27.08.2015, 16:06  [ТС] 10
Tulosba, почему так получится
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
27.08.2015, 16:11 11
Цитата Сообщение от levgen Посмотреть сообщение
почему так получится
Цитата Сообщение от Croessmah Посмотреть сообщение
нужно будет построить копию, чтобы построить копию, нужен конструктор копирования, а ему передается копия объекта, значит нужно построить копию, а чтобы построить копию, нужно вызвать конструктор копий, а если вызвать конструктор копирования, который принимает копию, то нужно построить копию объекта, а чтобы построить копию объекта, нужен конструктор копий, а он принимает копию объекта, значит нужно вызвать конструктор копий, чтобы построить копию объекта, а чтобы построить копию объекта, нужен конструктор копирования, а раз он принимает копию объекта, то нужно будет эту копию построить, а чтобы её построить, нужен конструктор копий...
Вот поэтому.
2
3 / 3 / 2
Регистрация: 07.02.2013
Сообщений: 185
27.08.2015, 16:15  [ТС] 12
всё, вопрос понял
0
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
27.08.2015, 16:18 13
Потому что параметры передаваемые по значению неявно вызывают конструктор копирования, для создания "локальных" объектов в пределах стека функции. Лол, ты чё, работодатель или сам на собеседовании сидишь?
2
27.08.2015, 16:18
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.08.2015, 16:18
Помогаю со студенческими работами здесь

Создать класс "Вектор" и реализовать конструктор по умолчанию, конструктор копирования и деструктор
Всем доброго времени суток! нужна ваша помощь! нужно создать класс вектор и реализовать...

конструктор копирования
Доброго времени суток. Помогите пожалуйста. Мне нужно вызвать конструктор копирования в этой...

Конструктор копирования
В общем есть вот такой код....МЕНЯТЬ В НЕМ НИЧЕГО НЕЛЬЗЯ - можно только дописывать методы... ...

Конструктор копирования
#include <iostream> using namespace std; class test { public: int x; test(int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru