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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Зачем делать private opertor = и конструктор коп. 
:(
    Опции темы
Nastya
Дата 20.9.2006, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 27.3.2002
Где: Мариуполь

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



САБЖ.
Для чего это надо (код подсмотрена в gdi+)

private:
    Bitmap(const Bitmap &);
    Bitmap& operator=(const Bitmap &);

почему приватный и зачем ????


--------------------
Что бы понять рекурсию, надо понять рекурсию

"Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор
PM MAIL   Вверх
SergeCpp
Дата 20.9.2006, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


 
**


Профиль
Группа: Участник
Сообщений: 955
Регистрация: 8.8.2005
Где: At Home

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



Кратко: Чтобы нельзя было скопировать объект

Также при некоторых обстоятельствах может потребоваться,
чтобы дублировать объекты могли только друзья или потомки.
Это достигается объявлением функций в защищённой (protected) или закрытой (private) частях

Чтобы запретить компилятору автоматически создавать конструктор копий
и операцию присваивания, надо объявить их в классе, но не писать определение.
При этом объявление должно располагаться в закрытой (private) части


Это сообщение отредактировал(а) SergeCpp - 20.9.2006, 14:08
PM MAIL WWW ICQ   Вверх
Nastya
Дата 20.9.2006, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1287
Регистрация: 27.3.2002
Где: Мариуполь

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



вот в том то и вопрос почему нельзя скопировать объект? для чего. Что бы увеличить сложность разработки? Или проблему разработчиков  библиотеки возложить на ее пользователей smile)) 


--------------------
Что бы понять рекурсию, надо понять рекурсию

"Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор
PM MAIL   Вверх
SergeCpp
Дата 20.9.2006, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


 
**


Профиль
Группа: Участник
Сообщений: 955
Регистрация: 8.8.2005
Где: At Home

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



Издержки на размещение в памяти при копировании и воспроизведении простых типов данных в принципе невелики. Чем сложнее тип данных, тем больше будут "расходы" на копирование объектов этого типа. Сложные типы могут требовать нетривиального управления памятью, они могут выполнять сложные графические преобразования, могут состоять из сложных структур данных, например, связанных списков, бинарных деревьев и мультимножеств; могут отвечать за инициализацию внешних устройств или быть элементами разветвленной иерархии. Как и в большинстве вопросов конкретной реализации, именно вам придется решать, в каких обстоятельствах целесообразно заблокировать копирование.

Вот неплохие статьи...

Это сообщение отредактировал(а) SergeCpp - 20.9.2006, 14:15
PM MAIL WWW ICQ   Вверх
Earnest
Дата 21.9.2006, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

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



Nastya, я думаю копирование битмапов запрещено, т.к. вин-апишные хандлы не имеют счетсчика ссылок, а дублировать их по любому поводу (т.е. соответствующий ресурс) слишком накладно. А если просто скопировать побитово, то возникнет неоднозначность с владением: кто должен освобождать ресурс?




--------------------
...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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