Конструкторы, деструкторы

Конструктор

Конструктор представляет собой метод класса, который имеет такое же имя, как и класс. Например, если вы используете класс с именем employee, конструктор также будет иметь имя employee.
Конструктор вызывается при создании объектов - с помощью него можно инициализировать атрибуты класса.


// описание класса
    class employee
    {
    public:
       employee(char *, long, float); //Конструктор
       void show_employee(void);
       int change_salary(float);
       long get_id(void);
    private:
       char name [64];
       long employee_id;
       float salary;
    };

// описание конструктора снаружи класса
    employee::employee(char *name, long employee_id, float salary)

    {
       strcpy(employee::name, name) ;
       employee::employee_id = employee_id;
       if (salary < 50000.0)
       employee::salary = salary;
       else // Недопустимый оклад
       employee::salary = 0.0;
    }

Как видите, конструктор =

  1. не возвращает значение вызвавшей функции.
  2. Для него также не используется тип void

Деструкторы

Деструктор имеет такое же имя, как и класс, за исключением того, что вы должны предварять его имя символом тильды (~).
- вызывается при уничтожении объекта.
пример:



    #include <iostream>
    using namespace std;
 
    class NameOfClass
    {
        private:
             int a;
        public:
             NameOfClass(int m);
             ~NameOfClass();
    };
 
    NameOfClass::~NameOfClass()
    {
        cout << this->a << endl;
    }
 
    NameOfClass::NameOfClass(int m)
    {
        a = m;
    }

//~NameOfClass() — деструктор, имеет имя ~NameOfClass, не имеет входных параметров.
//В данном случае при уничтожении объекта выводит в консоль параметр a.

читайте подробнее = http://programmersclub.ru/23/