Форум программистов, компьютерный форум CyberForum.ru

Более практичный метод обнуления полей класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как из DLL -ки выкинуть исключение типа FATAL ERROR, всем хана :-) http://www.cyberforum.ru/cpp-beginners/thread953099.html
DLL -ка соответственно под Win32 и не использует никакие окна, просто проводит небольшие вычисления и использует только стандарт С++... :)
C++ inline функция Помогите плиз, трудности с функцией inline. Внешняя функция exam заносит в объект класса Stud результаты сессии. \\ вот часть задания по лабе, что это за внешняя функция, как её использовать и примеров каких с ней, подскажите пожалуйста )) http://www.cyberforum.ru/cpp-beginners/thread953066.html
C++ ошибка SendMessage
SendMessage(HWND_BROADCAST, MsgPlayerDataReady, PutHWND, Handle); Ругается на Handle: невозможно преобразовать параметр 4 из System::IntPtr в LPARAM
Задача: написать классы Rect и Size C++
Написать Класс Rect где точка origin верхняя левая и класс Size ширина и высота
C++ Непонятки со спецификаторами printf http://www.cyberforum.ru/cpp-beginners/thread953035.html
Здравствуйте, товарищи! Каким образом сделать вывод размерностей разных типов без знака при помощи printf? Со спецификаторами пробовал - не помогает. (только тип short отображает правильно) printf("int = %d\n", (unsigned int)(-1)); //cout << "int = " << (unsigned int)(-1) << endl; // THIS OK printf("short = %d\n", (unsigned short)(-1)); // THIS OK //cout << "short = " << (unsigned...
C++ Как представить const из delphi в с++ Есть код на делфи, надо сделать аналогичный но на с++. Как представить следующую запись в Visual c++. const A $FFFF подробнее

Показать сообщение отдельно
stawerfar
 Аватар для stawerfar
141 / 55 / 4
Регистрация: 14.12.2010
Сообщений: 347
Записей в блоге: 1
12.09.2013, 15:35     Более практичный метод обнуления полей класса
Всем привет.
Программируя на досуге столкнулся с таким вопросом - "обнуление полей класса". Ну первое что пришло в голову это создание отдельного метода например Clear который бы сбрасывал значение полей класса на default'ные значения. Но такой подход мне не понравился так как этот метод будет необходимо постоянно модернизировать дополняя туда новые добавленые поля. И немного поразмыслив решил сделать вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <memory>
class A
{
  int a;
  char b;
  double c;
  char* d;
  /*.....*/
 
  public:
 
    A()
    {
      Clear();
    }
   
   ~A()
   {
     if (d)
    {
     delete []d;
    }
   }
 
   void Clear()
   {
    if (d) delete [] d; 
    memset(this,0,*this);
   }
};
По этому хотел спросить знающих людей, каковы плюсы и минусы такого подхода. И есть какие подводные камни в моем подходе?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru