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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2017, 20:28   #21
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Цитата:
Сообщение от KAMLS Посмотреть сообщение
код перегруженного конструктора копирования (простенький)
Ну так в Вашем коде он уже написан
Цитата:
Сообщение от KAMLS Посмотреть сообщение
код конструктора копирования работающего не явно
он потому и неявный, что в виде кода С++ не создаётся.
Black Fregat вне форума Ответить с цитированием
Старый 05.07.2017, 05:51   #22
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Уважаемый Alex11223.
Вам что, религия не позволяет написать то, что просят?
Просят написать простенький код перегруженного конструктора копирования. Вы пишите много всего хоть чего, но только не того что просят.
KAMLS вне форума Ответить с цитированием
Старый 05.07.2017, 06:05   #23
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Уважаемый Black Fregat. Вы вероятно не читали первый пост этой темы.
Там написано по-русски:
"то подскажите пожалуйста в чем выражается перегрузка в данном случае, и как выглядит в данном случае не перегруженный конструктор копирования"
Понимаете?
Меня интересуют признаки перегрузки.
В чем они выражаются?
Еще раз:
"В ЧЕМ ЗАКЛЮЧАЕТСЯ ЭФФЕКТ ПЕРЕГРУЗКИ".
Либо в том что в тело конструктора добавлен текст "Запущен конструктор копирования",
либо в том что вообще конструктор копирования прописан явно.
В чем признак перегрузки в данном случае?
Про перегрузку методов классов я знаю что это такое, и про перегрузку функций знаю.
Меня интересует признак перегрузки именно конструктора копирования.
Форумчанин waleri написал:
"В том, что конструктор копирования объявлен явно."
Но форумчанин Alex11223 подверг неявной критике такое высказывание, и с тех пор уклоняется от прямого ответа.
KAMLS вне форума Ответить с цитированием
Старый 05.07.2017, 10:14   #24
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Вы троллите или что? По-моему все вполне понятно описано на предыдущей странице.

Цитата:
Сообщение от KAMLS Посмотреть сообщение
Вы пишите много всего хоть чего, но только не того что просят
Может стоит прочитать это?

Цитата:
Сообщение от KAMLS Посмотреть сообщение
Меня интересуют признаки перегрузки.
В чем они выражаются?
Ответили ж уже 100500 раз и вы даже говорили, что разобрались.

Функции с одинаковым именем и разными параметрами.


ЗЫ
Цитата:
Сообщение от KAMLS Посмотреть сообщение
форумчанин Alex11223 подверг неявной критике такое высказывание, и с тех пор уклоняется от прямого ответа.
Цитата:
Сообщение от KAMLS Посмотреть сообщение
пользователь с ником waleri ...
Вы в курсе, что форум это просто место для общения?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 05.07.2017, 11:24   #25
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
В учебнике написано, что в данной программе перегружается конструктор копирования и оператор присваивания.
Теперь определение пользователем конструктора называется перегрузкой. Ясна панятна.
Croessmah вне форума Ответить с цитированием
Старый 05.07.2017, 13:41   #26
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Код:
	alpha()
	{}
	alpha(int d)
	{}
	alpha(alpha& a)
	{}
Это есть перегрузка, не важно что оно делает - в моем примере вообще ничего - главное есть одинаковые названия ф. с разными параметрами. Вопросы реализации к перегрузке не относятся - тело функций (внутри {}) вы пишете, исходя из логики работы вашей программы - как напишите, так и будет "правильно".

Последний раз редактировалось Alex11223; 05.07.2017 в 15:14.
alexzk вне форума Ответить с цитированием
Старый 07.07.2017, 18:45   #27
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Здравствуйте!
Слава Богу, что-то ближе к теме. Я понимаю, что такое перегрузка. Достаточно хорошо понимаю. Но поскольку нигде не мог найти код не перегруженного конструктора копирования (говорят его не существует(колдунство блин)), постольку мне стало интересно, как выглядит не перегруженный конструктор копирования, и перегруженный.
Т.е. если я просто повторю смысл конструктора копирования по умолчанию (но повторю его явно в коде класса), то это уже будет перегрузка?
Значит компилятор не будет применять свой конструктор копирования ни в каком виде?
KAMLS вне форума Ответить с цитированием
Старый 07.07.2017, 18:51   #28
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Цитата:
Сообщение от KAMLS Посмотреть сообщение
Здравствуйте!
Слава Богу, что-то ближе к теме. Я понимаю, что такое перегрузка. Достаточно хорошо понимаю. Но поскольку нигде не мог найти код не перегруженного конструктора копирования (говорят его не существует(колдунство блин)), постольку мне стало интересно, как выглядит не перегруженный конструктор копирования, и перегруженный.
Т.е. если я просто повторю смысл конструктора копирования по умолчанию (но повторю его явно в коде класса), то это уже будет перегрузка?
Значит компилятор не будет применять свой конструктор копирования ни в каком виде?
Не будет, кроме того, неявный генерируется только если все предки класса и все члены класс имеют конструктор копирования. Именно поэтому вы делаете свои - не всегда можно копировать, например, хэндл файла копировать нельзя, его нада делать dup().

Есть правило 3 (для совр. С++ это уже правило 5), смысл в том, что изменяя 1 из 5 функций, вы скорее всего хотите изменить и 4 остальных

https://ru.wikipedia.org/wiki/%D0%9F...BD%D0%B8%D0%B5)

Поправка, вы МОЖЕТЕ заставить компилятор сделать ЕЩЕ И конструктор по умолчанию, используя слово default:

Цитата:
A class can have multiple copy constructors, e.g. both T::T(const T&) and T::T(T&). If some user-defined copy constructors are present, the user may still force the generation of the implicitly declared copy constructor with the keyword default.

Последний раз редактировалось alexzk; 07.07.2017 в 18:58.
alexzk вне форума Ответить с цитированием
Старый 07.07.2017, 19:39   #29
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
Сообщение от KAMLS Посмотреть сообщение
говорят его не существует
Код:
struct Some
{
    Some() {}
    Some(Some &) {
        std::cout << "cctor 1" << std::endl;
    }
    Some(const Some &) {
        std::cout << "cctor 2" << std::endl;
    }
};




int main()
{
    Some s1;
    const Some s2(s1);
    Some s3(s2);
}
http://rextester.com/RZVKM71385

Код:
#include <iostream>



struct Some
{
    Some() {}
    Some(Some &) {
        std::cout << "cctor 1" << std::endl;
    }
    Some(const Some &, int x = 10) {
        std::cout << "cctor 2" << std::endl;
    }
};




int main()
{
    Some s1;
    const Some s2(s1);
    Some s3(s2);
}
http://rextester.com/ZOHG85334
Croessmah вне форума Ответить с цитированием
Старый 08.07.2017, 03:47   #30
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Спасибо большое.
KAMLS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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