Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.07.2017, 09:18   #31
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от KAMLS Посмотреть сообщение
не перегруженного конструктора копирования (говорят его не существует(колдунство блин))
Говорят не это. Вы смешиваете разные вещи.

Есть термин перегрузка, который обычно используют для описания ситуации когда есть функции с одинаковым именем и разными параметрами.
Случай когда у класса есть несколько любых конструкторов подходит под это.

В С++ есть "конструктор по умолчанию" (default) — это конструктор без параметров, например вызывается при
Код:
MyClass obj;
Он может быть описан явно в коде или (при отсутствии других конструкторов с параметрами) неявно (implicitly) создан компилятором.

В С++11 еще есть ключевое слово default для получения неявной реализации конструктора/деструктора (не только для "конструктора по умолчанию").

Еще есть конструктор копирования. Принимает ссылку на объект этого класса, вызывается при
Код:
MyClass obj2(obj);
Тоже может быть неявно создан компилятором если не объявлен явно. Неявно созданный копирует все поля, явный делает что угодно автору.

Что такое "перегруженный конструктор копирования" надо уточнять у того, кто это сказал.
Как вариант можно предположить, что это разные конструкторы копирования для const и не const, как в предыдущем коде.

Еще есть "перегрузка операторов" — определение своих операторов, например "+" для сложения объектов своего класса или оператор копирования (obj2 = obj). Последний тоже может быть неявно создан компилятором.
Перегрузкой оно называется потому что один и тот же оператор (имя функции) может использоваться с разными параметрами: + для чисел, + для строк, + для своего класса.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 08.07.2017 в 09:24.
Alex11223 вне форума Ответить с цитированием
Старый 08.07.2017, 09:54   #32
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Принимает ссылку на объект этого класса
Не совсем так. Конструктор копирования должен принимать ссылку на объект этого класса первым аргументом. Остальные аргументы могут быть любыми, но заданными по-умолчанию:
Код:
struct Some
{
   Some(const Some &src, float = 0.0f);//конструктор копирования
};
Croessmah вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызовы конструктора копирования rmv240899 Общие вопросы C/C++ 11 11.06.2012 13:07
Вызов конструктора для this в констукторе копирования TrydORgolik Общие вопросы C/C++ 1 03.09.2011 11:54
Перегрузка конструктора формы Frustrator Общие вопросы Delphi 1 22.04.2011 09:05
Конструктор копирования, перегрузка операций xPAL Общие вопросы C/C++ 1 15.10.2010 20:16
Перегрузка конструктора Spice Общие вопросы C/C++ 3 20.07.2009 14:37