Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Непонятка с конструктором копирования 
V
    Опции темы
OlegSK
Дата 2.12.2010, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 17.7.2010

Репутация: нет
Всего: нет



В книге Шилдта, "Полный справочник C++" упоминается, что конструктор копирования может принимать несколько аргументов. К сожалению, Шилдт ограничился лишь упоминанием о такой возможности, не раскрыв данную тему. Хотелось бы узнать об этом по подробнее... Где можно прочитать подробности этой темы?
PM MAIL   Вверх
zoidberg
Дата 2.12.2010, 14:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 18.7.2006

Репутация: -1
Всего: 0



Цитата(OlegSK @ 2.12.2010,  14:34)
В книге Шилдта, "Полный справочник C++" упоминается, что конструктор копирования может принимать несколько аргументов. К сожалению, Шилдт ограничился лишь упоминанием о такой возможности, не раскрыв данную тему. Хотелось бы узнать об этом по подробнее... Где можно прочитать подробности этой темы?

Часто вижу тут ОБУЧАЮЩИХСЯ по книгам Шилда серии СПРАВОЧНИК. Для меня остается загадкой данная практика. Даже в аннотации автор предупреждает, что это справочник, а не учебник. Тащемта, у Шилда есть "C++ базовый курс", например.
PM MAIL   Вверх
Чoо
Дата 2.12.2010, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 22.9.2009

Репутация: 4
Всего: 4



и еще самоучитель с++ есть у него smile. права рассчитана для владеющих языком си


--------------------
user posted image

OS: Debian Squeeze (kernel 3.8.2)
IDE: qtCreator 1.3.1; Eclipse SDK 3.5.2
PM MAIL   Вверх
bsa
Дата 2.12.2010, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



OlegSK, вот тут есть тема про книги. Не поленись, почитай. Главное, обрати внимание на рекомендуемую последовательность чтения.

А по поводу конструктора копирования с дополнительными параметрами:
Код
class MyClass
{
   MyClass(const MyClass &x, int flags = 0);
};

PM   Вверх
OlegSK
Дата 2.12.2010, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 17.7.2010

Репутация: нет
Всего: нет



zoidberg, до этой книги я читал книгу Джеса Либерти, "Освой самостоятельно C++ за 21 день", и не видел там описания конструктора копировщика с несколькими аргументами (и еще некоторых вещей). Собственно я и взялся за справочник чтобы заполнить пробелы в знаниях. Посмотрю указанные Вами книги; надеюсь, что найду там нужную информацию...
PM MAIL   Вверх
kemiisto
Дата 2.12.2010, 17:54 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 5
Всего: 160



bullschildt одним словом.


--------------------
PM MAIL WWW GTalk Jabber   Вверх
OlegSK
Дата 2.12.2010, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 17.7.2010

Репутация: нет
Всего: нет



bsa, благодарю за список книг. Что касается конструктора копировщика, то осталось только разобраться: когда и какие флажки передаются в аргументе flags, и как их использовать...

Добавлено через 4 минуты и 35 секунд
kemiisto, я вас верно понял: вы считаете, что эту книгу читать не стоит?
PM MAIL   Вверх
bsa
Дата 2.12.2010, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(OlegSK @  2.12.2010,  19:03 Найти цитируемый пост)
Что касается конструктора копировщика, то осталось только разобраться: когда и какие флажки передаются в аргументе flags, и как их использовать... 

 smile 
Когда надо, какие надо, как хочешь, так и используй. Я для примера привел второй аргумент типа int и именем flags. Там может быть все что угодно. Более того, можно и 10 параметров сделать. Вот только не нужно это в большинстве случаев - я за свою 10-ти летнюю практику не припомню ни одного случая, чтобы я делал подобный конструктор.
PM   Вверх
OlegSK
Дата 2.12.2010, 18:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 17.7.2010

Репутация: нет
Всего: нет



bsa, я еще можно сказать не в теме... Как, например, передать значение для второго аргумента конструктора копирования в следующем коде:
Код

MyClass TestFunc()
{
       MyClass test;
       int flags;
       ...
       return test; // Здесь нужно чтобы конструктор копирования класса MyClass получил не только test, но еще и flags...
}


Это сообщение отредактировал(а) OlegSK - 2.12.2010, 18:45
PM MAIL   Вверх
mes
Дата 2.12.2010, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(OlegSK @  2.12.2010,  17:40 Найти цитируемый пост)
   return test; // Здесь нужно чтобы конструктор копирования класса MyClass получил не только test, но еще и flags...
}


Код

return MyClass (test, flags);

хотя для конкретно вашего примера конструктор копий не нужно использовать..

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



--------------------
PM MAIL WWW   Вверх
OlegSK
Дата 2.12.2010, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 17.7.2010

Репутация: нет
Всего: нет



mes, благодарю вас за пример кода! Тему можно закрывать.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1235 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.