Инструменты пользователя

Инструменты сайта


examination:oop:question40

40. Проектирование системы конструкторов и деструкторов класса. Ситуации, требующие проектирования. Определение функций и состава системы, правила задания параметров конструкторов и деструкторов.

Параметрами конструкторов являются те свойства создаваемого объекта, которые задаются при вызове конструктора. Параметры конструктора ничем не отличаются от параметров обычного метода. Они все могут быть заданы явно, либо часть из них могут быть параметрами по умолчанию. Деструктор не имеет параметров, но может иметь тело, удаляющее объекты, созданные с помощью ключевого слова new. Например:

сlass CMyClass
{
  public:
    CMyClass();  // Конструктор класса CMyClass
    ~CMyClass();   // Деструктор класса CMyClass
private:
   int MyInt;  // переменная типа integer (целое число)
   int *point; // переменная типа указатель на integer (целое число)
};

CMyClass::CMyClass()  // Конструктор
{
MyInt=10;   // На этапе инициализации объекта класса CMyClass присваиваем 
                    // переменной этого объекта MyInt значение 10

point = new int; // Выделяем блок памяти под целое число, на которое 
                          // будет указывать указатель
*point = 20;      //  Сохраняем в этот выделенный блок памяти число 20
}

CMyClass::~CMyClass()  // Деструктор
{
MyInt=0;   // Объект класса CMyClass уже фактически прекратил существование,
                  // но мы присваиваем переменной класса MyInt значение 0

delete point; // Используем указатель на число для того, чтобы освободить
                    // блок памяти, выделенный под это число.
                    // Если мы этого здесь не сделаем, никто за нас это не сделает
}
examination/oop/question40.txt · Последние изменения: 2014/01/15 12:22 (внешнее изменение)