| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Вопрос по классом |
| Автор: knut 19.9.2006, 15:39 |
| Всем доброго времени суток Зачем классу иметь несколько констукторов копи? |
| Автор: EvgenZ 19.9.2006, 16:18 |
| Конструктор копирования может быть только один!!! Или может ты имеешь ввиду что-то другое? |
| Автор: Romikgy 19.9.2006, 16:27 |
дабы можно было создавать класс от нескольких исходных данных, например можно создать класс для работы со строками , дык его можно будет создать и от char * и от самого класса и еще от допустим инта , флоата и т.п. |
| Автор: knut 19.9.2006, 16:29 | ||
EvgenZ,
Ты xочеш сказать что у класса не может быть два или болше конструктора копи? это почему? |
| Автор: bel_nikita 19.9.2006, 16:31 |
| myclass(const myclass& cop); |
| Автор: knut 19.9.2006, 16:43 | ||
bel_nikita,
извини конечно ну что это? |
| Автор: MAKCim 19.9.2006, 16:46 | ||
копирующий конструктор |
| Автор: Romik_Yarosh 19.9.2006, 16:47 |
это и есть копирующий конструктор |
| Автор: Damarus 19.9.2006, 16:47 |
Это конструктор копирования |
| Автор: knut 19.9.2006, 16:47 | ||
все понял это для привязки к другому классу.или нет? |
| Автор: Romik_Yarosh 19.9.2006, 16:53 |
нет для привезки к своему классу |
| Автор: zkv 19.9.2006, 17:03 | ||||
Конструктор копирования используется во многих случаях, типичный пример:
Компилятор при необходимости (если программист не написал свой) сам "придумывает" конструктор копирования, который просто копирует значения всех членов-данных, но в некоторых случаях это непремлимо, тогда стоит написать свой. |
| Автор: Damarus 19.9.2006, 17:17 | ||||
Нет, здесь будет вызван operator =. |
| Автор: zkv 19.9.2006, 17:21 |
да, конечно, скажем так: "Будет задействован конструктор копирования"; Damarus - так правильно? |
| Автор: Damarus 19.9.2006, 17:40 | ||
Нет. В твоём примере вызывается конструктор без параметров (2 раза - для My1 и My2) в строке 1. А в строке 3 вызывается:
|
| Автор: threef 19.9.2006, 21:00 | ||
|
| Автор: zkv 20.9.2006, 17:42 | ||||||
Damarus, конечно ты прав, что то поперепутал все в голове, еще и с советами полез в моей книжке написано:
про оператор = я, видимо, домыслил сам, не правильно поняв подобный пример:
Прошу прощения за дезинформацию. Damarus, спасибо за уместное замечание |