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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как быстро обнулить объект? 
:(
    Опции темы
Mayk
Дата 14.9.2005, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

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



Цитата(JoyEx @ 14.9.2005, 21:40)
ZeroMemory( (BYTE *)Destination + 4, sizeof(Класс) - 4);

Дыкть, наследование может быть множественным.


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
_hunter
Дата 14.9.2005, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



и какой вообще смысл обнулять класс? лучше него это всеравно никто не сделает...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Crait
Дата 14.9.2005, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Смысл как раз есть, и нередко smile
PM MAIL   Вверх
Дрон
Дата 14.9.2005, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java-ненавистник :)
****


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

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



Цитата(Crait @ 14.9.2005, 19:01)
Смысл как раз есть, и нередко smile

Это противоречит ООП (щаз как Domestic Catа позову!! smile ).

Это сообщение отредактировал(а) Дрон - 14.9.2005, 18:03


--------------------
Да. Именно так.
PM   Вверх
Crait
Дата 14.9.2005, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата
Это противоречит ООП

Оно может и так, но бывает удобно smile
PM MAIL   Вверх
bilbobagginz
Дата 14.9.2005, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


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

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



кроме полей класса в классе есть ещё уйма ( для меня ) лишней информации (vptr ет цетера), к-рую memset затрёт полностью, и что не будет способствовать здоровью программы..


--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
Mayk
Дата 14.9.2005, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

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



Цитата(Crait @ 14.9.2005, 22:05)
Оно может и так, но бывает удобно

Неужели
Код

classs->~Class()
bzero(classs, sizeof(*classs))

удобнее
Код

classs->reset();

smile


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Crait
Дата 14.9.2005, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Это понятно, но тогда в reset() придётся обнулять все поля вручную,
а при добавлении нового поля помнить, что следует модифицировать
и reset().
В принципе, так и делаю smile

Это сообщение отредактировал(а) Crait - 14.9.2005, 18:24
PM MAIL   Вверх
_hunter
Дата 14.9.2005, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



а в чем проблема помнить все поля? при чем их обычно пишут перед функциями -- так-что просто взглядом пробежаться на предмет есть/нету...

+ предположим я в конструкторе сделал VirtualAlloc(дофига памяти)
и что будет после memset' a?


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Crait
Дата 14.9.2005, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Большой-то проблемы конечно же нет, но всё-же, одно дело
- единожды написать что-нибудь типа memset(this,0,sizeof(*this))
и знать, что покрыто нулём будет абсолютно всё smile,
а другое - перечислять десяток операций по обнулению полей
но, главное, помнить, что при изменениях в классе
следует модифицировать также и метод reset().

Разумеется, никто, я думаю, не ожидает, что таким образом
будет обнулена и динамически выделяемая память.

Это сообщение отредактировал(а) Crait - 14.9.2005, 19:40
PM MAIL   Вверх
_hunter
Дата 15.9.2005, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



будут обнулены векторы, стринги... интересно...


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Crait
Дата 15.9.2005, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Заставь кой-кого smile Богу молиться, так он себе лоб расшибёт...
Речь ведь в основном о POD-типах.

Это сообщение отредактировал(а) Crait - 15.9.2005, 12:03
PM MAIL   Вверх
_hunter
Дата 15.9.2005, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



Цитата
Речь ведь в основном о POD-типах.

дааа? не заметил smile
речь шла о полях ( без указания типа... )


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Crait
Дата 15.9.2005, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Нередко встречаются и такие типы полей, для которых
термин "обнуление" вообще теряет смысл.
А мы, я надеюсь, обсуждали не эти случаи.

Это сообщение отредактировал(а) Crait - 15.9.2005, 12:38
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

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

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

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

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


 




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


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

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