задачка № 7, (скорее вопрос, по для меня задачка) |
Здравствуйте, гость ( Вход | Регистрация )
задачка № 7, (скорее вопрос, по для меня задачка) |
Litkevich Yuriy |
12.4.2008, 18:48
Сообщение
#1
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Наткнулся в Qt'явых примерах на такой код:
смысл строчки ( *item = *this; ) непойму, ведь экземпляр уже создан, и именно этого класса ( SpreadSheetItem *item = new SpreadSheetItem(); ) this позволит данные текущего экземпляра скопировать? |
|
|
archimed7592 |
13.4.2008, 0:26
Сообщение
#2
|
Участник Группа: Участник Сообщений: 127 Регистрация: 27.12.2007 Из: Moscow Пользователь №: 56 Спасибо сказали: 0 раз(а) Репутация: 0 |
Смотри:
Здесь pB играет роль указателя на вновь созданый объект, а pA - на изначальный. Остальное - обыкновенное присваивание(либо сгенерённое компилятором, либо написаный автором класс operator =). Сообщение отредактировал archimed7592 - 13.4.2008, 0:29 |
|
|
Novak |
13.4.2008, 12:40
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 319 Регистрация: 15.3.2008 Из: Замкадыш Пользователь №: 121 Спасибо сказали: 28 раз(а) Репутация: 6 |
В данном случае, я думаю, как раз подразумевается обязательная перегрузка оператора =.
Потому для реализации функции копирования (клонирования) и создается сначала просто объект класса, потом перегруженным присваиванием в него копируются изначальный объект. Потому, да Цитата this позволит данные текущего экземпляра скопировать
|
|
|
archimed7592 |
13.4.2008, 13:38
Сообщение
#4
|
Участник Группа: Участник Сообщений: 127 Регистрация: 27.12.2007 Из: Moscow Пользователь №: 56 Спасибо сказали: 0 раз(а) Репутация: 0 |
Цитата В данном случае, я думаю, как раз подразумевается обязательная перегрузка оператора =. А чем сгенерённый компилятором оператор здесь не подходит? Разве что только тем, что он открыт... Цитата Потому для реализации функции копирования (клонирования) и создается сначала просто объект класса, потом перегруженным присваиванием в него копируются изначальный объект. Вообще говоря классики рекомендуют делать это так: Т.е. посредством конструктора копирование, ибо это есть труъ .
|
|
|
Текстовая версия | Сейчас: 3.1.2025, 6:04 |