русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Конструктор


Дата добавления: 2015-07-09; просмотров: 507; Нарушение авторских прав


Инициализация экземпляра класса осуществляется при помощи конструкторов, которые вызываются при создании объекта и позволяют инициализировать объект.

Конструктор имеет тоже имя и что и класс, но отсутствует тип возвращаемого значения.

Конструктор по умолчанию – конструктор без параметров – инициализирует поля класса значениями по умолчанию. Если конструктор по умолчанию не определен, то компилятор формирует его автоматически.

………………………………..

Public:

СDate()

{ set(0, 0, 2000); }………………………………..

СDate Data;

Конструктор с параметрами -инициализирует поля класса значениями, заданными в параметрах. Внутри конструктора можно сделать проверку корректности параметров.

………………………………..

Public:

СDate(int d, int m, int y)

{ int day, month, yaer;

if(0<d)&&(d<32)

{day = d;}

else

{ day = 1;}

if(0<m)&&(m<13)

{ month = m;}

else

{ month = 1;}

if(2000<=y)&&(m<3001)

{ yaer = y;}

else

{ yaer = 2000;}

set(day, month, yaer);

}………………………………..СDate Data(11,5,2009);

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

СDate Data_1(11,5,2009);

СDate Data_2(Data_1);

СDate Data_3= Data_1;

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

………………………………..

Public:

Char *Buffer;

………………………………..

СDate(const СDate &Date)

{

Buffer = new char[100];

Strcpy(Buffer, Date. Buffer);

}

Конструктор-копировщик автоматически вызывается при:



- при передаче объекта в качестве параметра функции

- при возврате функции объекта класса.

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

Class CDate

{

………………..

Public CDate(const char *Str)

{

Buffer = new char[strlen(str) + 1];

Strcpu(Buffer, str); }………………..}

CDate Date_1(“12.05.2004”);

CDate Date_1 = “12.05.2004”;

Так же конструктор преобразования неявно вызывается для преобразования переменных других типов в объекты класса. Аналогично: функции, которые могут принимать объекты класса, так же могут принимать другие типы данных, для которых есть конструктор преобразования.

Важное преимущество данного конструктора – при перегрузке операторов пропадает необходимость в написании отдельного метода для каждой комбинации операндов.

 

Деструктор– деинициализирует объект класса. Вызываются при окончании работы с объектом (или при вызове Delete).

………………………………..

Public:

Char *Buffer;

………………………………..

~ СDate()

{ delete[] Buffer; }………………..

 




<== предыдущая лекция | следующая лекция ==>
Элементы (члены) класса: поля (атрибуты) и методы. | Основные принципы ООП (инкапсуляция и наследование).


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.507 сек.