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