69711
Конструктори
Лекция
Информатика, кибернетика и программирование
Конструктор призначений для ініціалізації об’єкту і викликається автоматично при його створенні. Основні властивості конструкторів. Конструктор не повертає значення, навіть типу void. Не можна отримати покажчик на конструктор.
Украинкский
2014-10-09
34 KB
1 чел.
Тема 1: Конструктори
Конструктор призначений для ініціалізації об'єкту і викликається автоматично при його створенні. Основні властивості конструкторів.
Конструктор викликається, якщо в програмі зустрілася яка-небудь з синтаксичних конструкцій:
ім'я_класу ім'я_об'єкту [(список параметрів)];
// Список параметрів не повинен бути порожнім
імя_класу (список параметрів);
// Створюється об'єкт без імені (список може бути порожнім)
імя_класу імя_обєкту = вираз;
// Створюється об'єкт без імені і копіюється
Приклади.
monstr Super(200, 300), Vasia(50), Z;
monstr X = monstr(1000);
monstr У = 500;
Як приклад класу з декількома конструкторами удосконалимо описаний раніше клас monstr, додавши в нього поля, задаючі колір
(skin) і ім'я (name):
enum color (red, green, blue); // Можливі значення кольору class monstr
{
int health, ammo;
color skin;
char *name;
public;
monstr(int he = 100, int am = 10);
monstr(color sk);
monstr(char * nam);
int get_health() {return health;}
int get_ammo() {return ammo;}
};
//..............................
monstr::monstr(int he, int am)
{
health = he; ammo = am; skin = red; name = 0;
}
//..........................
monstr::monstr(color sk)
{
switch (sk)
{
case red : health = 100; ammo = 10; skin = red; name = 0;
break;
case green: health = 100; ammo = 20; skin = green; name = 0; break;
case blue : health = 100; ammo = 40; skin = blue; name = 0; break;
}
}
//------------------------------------------
monstr::monstr(char * nam)
{
name = new char [strlen(nam)+ 1];
// До довжини рядка додається 1 для зберігання нуль-символа
strcpy(name, nam);
health = 100; ammo =10; skin = red;
}
//................................
monstr *m = new monstr ("Ork");
monstr Green (green);
Перший з приведених вище конструкторів є конструктором по замовчуванню, оскільки його можна викликати без параметрів. Об'єкти класу monstr теперь можна ініціалізувати різними способами, необхідний конструктор буде викликаний залежно від списку значень в дужках. При заданні декількох конструкторів слід дотримуватися тих правил, що і при написанні перевантажених функцій у компілятора повинна бути можливість розпізнати потрібний варіант.
Деструктор
Деструктор це особливий вид методу, який застосовується для звільнення памяти, займаної об'єктом. Деструктор викликається
автоматично, коли об'єкт виходить з області бачення:
1. для локальних об'єктів при виході з блоку, в якому вони оголошені;
2. для глобальних як частина процедури виходу з main:
3. для об'єктів, заданих через покажчики, деструктор викликається неявно при використанні операції delete.
Ім'я деструктора починається з тільди (~), безпосередньо за якою слідує ім'я класу. Деструктор:
1. не має аргументів і значення, яке повертається; не може бути оголошений як const або static;
2. не успадковується;
3. може бути віртуальним .
Якщо деструктор явним чином не визначено, компілятор автоматично створює порожній деструктор. Описувати в класі деструктор явним чином потрібно у разі, коли об'єкт містить покажчики на пам'ять, яка виділяється динамічно інакше при знищенні об'єкту пам'ять, на яку посилалися його поля-покажчики, не буде помічена як вільна. Покажчик на деструктор визначити не можна.
Деструктор для даного прикладу повинен виглядати так:
monstr::~monstr( )
{delete [] name;}
Деструктор можна викликати явним чином шляхом вказання повністю уточненого імені, наприклад:
monstr *m; ... m -> -monstr();
Це може знадобитися для об'єктів, яким за допомогою перевантаження операції new виділялася конкретна адреса пам'яті. Без необхідності явно викликати деструктор об'єкту не рекомендується.
А также другие работы, которые могут Вас заинтересовать | |||
45449. | Операционные системы реального времени. Применение. Особенности. Архитектуры операционных систем реального времени. Особенности функционирования ОС РВ. Достоинства и недостатки операционных систем реального времени | 399.5 KB | |
Каждая из архитектур позволяет обеспечивать функционирование задач в режиме реального времени.23: задачи интерфейс прикладных программ И. Достоинства: простота создания простота управления задачами. Недостатки: отсутствие гибкости в системе и возможности управления задачами в процессе функционирования систем; при зацикливании одного из блоков система блокируется и перестает функционировать. | |||
45450. | Синхронизация в системах реального времени. Принципы разделения ресурсов в СРВ. «Смертельный захват» «Гонки» «Инверсия приоритетов». Технология разработки собственной ОС РВ | 69.5 KB | |
Логическая последовательность исполнения Обеспечение доступа к общим ресурсам Обеспечение синхронизации с внешними событиями Обеспечение синхронизации по времени Связность задач. Обеспечение доступа к общим ресурсам. Реализация синхронизации необходима для обеспечения доступа к тем ресурсам которые являются разделяемыми ресурсами в системе т. Возникают коллизии связанные с получением доступа. | |||
45451. | Виды операционных систем реального времени. QNX. OS-9. VxWorks. Операционные системы реального времени для Windows. IA-Spox, RTX, Falcon, Hyperkernel | 190.5 KB | |
Операционные системы реального времени для Windows. ОСРВ по Windows Windows CE система ориентирована на небольшие контроллеры и включает большую часть функций ядра стандартной ОС для поддержки средств являющихся зарегистрированной маркой Microsoft. ОС РВ Стандартная ОС с поддержкой общих функций Поддержка расширений служащих для выполнения задач РВ Расширения ISPOX В расширении ОС Windows для реального времени. Данное расширение разработано для системы Windows95 98. | |||
45452. | Средства создания операторского интерфейса автоматизированных систем (SCADA-приложения). Применение. Особенности. Возможности и средства, присущие SCADA-пакетам. Состав SCADA. Виды SCADA. TraceMode. Citect. InTouch. iFix. Wizcon GeniDAQ. WinCC. MasterSCA | 103 KB | |
Под SCADA – приложением подразумевается любое ПО, которое получает данные с внешних устройств, формирует управляющие команды, сохраняет информацию на внешних носителях и формирует графическое приложение системы. Любое SCADA – приложение должно иметь набор инструментальных средств, позволяющих создавать уже в разработанных интерфейсах типовые модули подключения новых объектов и создание однотипных интерфейсов оператора для типовых автоматизированных систем. | |||
45453. | Базы данных РВ. Структура. Применение. Особенности. Особенности Industrial SQL Server. Функциональные возможности сервера базы данных. Интеграция с другими компонентами комплекса. Возможность организации клиент-серверной системы | 454 KB | |
Эта БД позволяет обеспечить доступ к БД при помощи языка SQL и обеспечить хранение информации в заданном пользователем виде. Для системы РВ не являющейся СЖРВ реляционная БД является оптимальной но для СЖРВ требуется обеспечение следующих условий: высокоскоростной сбор информации 1015 параметров за 1 секунду возможность хранения больших объемов информации обеспечение доступа к информации с различных рабочих станций по сетевому протоколу Для решения проблемы были разработаны БД БД реального времени: Industril SQLserver WizSQL... | |||
45454. | Комплексные программные средства разработки приложений РВ. Инструменты разработки систем автоматизации. IPC@Chip. Организация приложений на базе промышленного Ethernet | 109 KB | |
На текущий момент существует 3 различные системы обеспечивающие интеграцию АСУП и АСУТП. WizFctory Fctory Suile TFctory Данные системы объединяют уровень производственной информации т. Система позволяет строить диаграммы линейной логики и диаграммы функционирования системы. Гибкость и универсальность подхода создания любой системы автоматизации любой сложности 2. | |||
45455. | Устойчивость систем управления | 57.5 KB | |
В соответствии с классическим методом решение дифференциального уравнения ищется в виде: yt = yвынt yсвt. Здесь yсвt общее решение однородного дифференциального уравнения то есть уравнения с нулевой правой частью: oyn 1yn1 . Поэтому решение данного уравнения называется свободной составляющей общего решения. yвынt частное решение неоднородного дифференциального уравнения под которым понимается уравнение с ненулевой правой частью. | |||
45456. | Математические модели объектов управления в системах управления | 1.07 MB | |
Применять интегральный закон регулирования нельзя так как это приводит к повышению порядка астатизма системы второй порядок ибо сам объект является интегрирующим звеном. Системы с астатизмом второго порядка построить можно но требуется сложное корректирующее звено обладающее дифференцирующими свойствами. Часто системы с регуляторами рассматриваются как системы с встречнопараллельными корректирующими цепями. не учитывать некоторые особенности характеристик исследуемых элементов а также не учитывать отдельные связи если они не... | |||
45457. | Системы управления и регулирования. Использование структурных схем. Законы управления. Принципы управления, качество | 83 KB | |
И интегральный регулятор : Преимуществом данного регулятора является лучшая по сравнению с Прегулятором точность установки режима а недостатками худшие по сравнению с Прегулятором показатели качества а именно большая колебательность и меньшее быстродействие. ПИ регулятор : Объединяет два регулятора П и И следовательно обладает наилучшими свойствами по сравнению с вышеописанными регуляторами а именно за счет Псоставляющей улучшается показательные качества в переходном процессе а за счет Исоставляющей уменьшается... | |||