Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



Конструктор - это специальная элемент-функция, служащая для инициализации элементов-данных объекта класса. Конструкторы можно разделить на конструкторы инициализации и копирования.

Конструктор характеризуется следующими свойствами:

- напоминает обычную функцию, но с именем, совпадающим с именем класса, и без типа возвращаемого значения;

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

- не может быть const, static, virtual и не наследуется;

- использует два способа инициализации элементов-данных: списком инициализации и телом конструктора; элементы-константы и ссылки инициализируются только списком.

Пример:

class akt

{

int tabn;

float objem;

public: //инициализация списком //инициализация телом

akt(int x, float y): tabn(x), objem(y) //akt(int x,float y)

{} //tabn=x objem=y //{tabn=x; objem=y;}

};

main() //}

{

akt obj1(1,100000);//x=1 y=100000

}

Конструктор копирования служит для инициализации нового объекта класса значениями другого объекта того же класса, т.е. для копирования задаваемых элементов-данных одного объекта в другой

Деструктор служит для уничтожения объектов класса. Деструктор характеризуется следующими свойствами:

- имеет имя класса с префиксом-тильдой (~) и не имеет возвращаемого значения и параметров, например, ~akt();

- автоматически вызывается компилятором при выходе из области видимости или при выполнении операции delete для объектов, размещенных в динамической памяти при помощи операции new;

- не может быть const, static, virtual, и не наследуется.





Дата публикования: 2014-11-26; Прочитано: 196 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...