Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Новые рефераты » Основи програмування в C + +

Реферат Основи програмування в C + +





бліотеки. p> Для ілюстрації розглянемо приклад класу, який задає координату на екрані:


class Location

{int x;

int y;

public:

Location (int _x, int _y);// конструктор

void setx (int nx);

void sety (int ny);

int Getx ()

{return x;}

int Gety ()

{return y;}

};


У даному прикладі, використавши специфікатор public, ми зробили відкритими для інших функцій методи, описані в класі.

Визначити функції - члени класу можна всередині опису класу або за його межами. У першому випадку функція вважається вбудованої. Вбудована функція характерна тим, що компілятор C + +, обробляючи виклики цієї функції в програмі, замінює їх не на виклик функції як підпрограми, а безпосередньо на об'єктний код, що відповідає визначенню цієї функції. Внаслідок сказаного, програміст повинен брати до уваги, що вбудовуються функції, як правило, мають короткі визначення. В якості приклад можна навести визначення функцій Getx () і Gety ().

Для визначення функції - члена класу за межами опису класу необхідно визначити її де-небудь у програмі після визначення класу, членом якого вона є.


void Location :: setx (int nx)

{x = nx;}


void Location :: sety (int ny)

{y = ny;}


Location :: Location (int _x, int _y)

{x = _x; y = _y;}


Операція дозволу контексту (::) дозволяє вказати компілятору, до якого з класів належить обумовлена ​​функція.

Ім'я класу у визначенні пишеться для того, щоб компілятор однозначно визначив до якого класу належить дана функція, так як функції - члени різних класів можуть мати однакові імена.

При визначенні класів не відбувається реального виділення пам'яті під об'єкти цього класу, а створюються лише нові похідні типи даних, для яких використовуватимуться функції - члени класу.

Для того, щоб почати роботу із реальними об'єктами якого класу, ці об'єкти необхідно спочатку визначити. При цьому в програмі необхідно вказати ім'я класу, об'єкт якого повинен бути створений, а також ім'я самого об'єкта. У кожного з класів може бути довільне число об'єктів.


4. Конструктори і деструктори

Конструктором називається функція-член класу, яка виділяє пам'ять під поля даних класу і проводить їх ініціалізацію, тобто задає початкові значення в місці оголошення змінних.

Ім'я конструктора збігається з ім'ям класу. Наприклад, у класі Location конструктор має наступний вигляд: Location (int _x, int _y). p> Конструктор не вертає ніякого значення, навіть void.

Одним з важливих властивостей конструктора є його автоматичний виклик при описі будь-якого об'єкта якого класу, що використовує конструктор, що знімає з програміста завдання своєчасного відстеження ініціалізації нововведених об'єктів.

У загальному випадку конструктори класів можуть мати списки параметрів, які можуть знадобитися при ініціалізації. При цьому програміст буде зобов'язаний задати список ініціалізації при описі кожного нового об'єкта.

Конструкторів в класі може бути багато. У цьому випадку реалізується механізм перевантаження функції. p> Якщо конструктори НЕ оголошені, компілятор сам створює конструктор без параметрів за замовчуванням.

Оголошення об'єктів можна проілюструвати наступним чином:


void main (Void)

{Location NK (0,0), KK (10,10), * PL;

cout <

PL = &NK;

cout < Gety ();// Значення, що повертається: 0

}


Тут при оголошенні NK (0,0) і KK (10,10) неявно викликаються конструктори.

cout <

cout < Gety () звернення йде через вказівник.


Конструктор копій

{Location A (1,1), B, D = A;

...}


Спочатку створюється об'єкт D і він ініціалізується значенням об'єкта A. Для ініціалізації потрібно явно визначити конструктор.

У конструкторі копій в Як параметр використовується проста або константная посилання на об'єкт.


Location :: Location ([const] Location & S)

{x = S.x; y = S.y}


Для кожного з об'єктів класу при очищенні пам'яті компілятором створюється деструктор за замовчуванням. Визначається деструктор наступним чином: ~ ім'я. Ім'я деструктора збігається з ім'ям класу, але з символом ~ (тильда) на початку.

Деструкція вирішує зворотну конструктором задачу, тобто очищає пам'ять.

Якщо в конструкторі об'єкта запитується динамічна пам'ять або відкривається файл, то при знищенні об'єкта необхідно передбачити дії з очищення пам'яті і закриття файлу. У цьому випадку користувачеві необхідно визначати деструктор. Цей деструкція буде викликатися при ...


Назад | сторінка 3 з 6 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Практико-орієнтовані завдання як засіб реалізації прикладної спрямованості ...
  • Реферат на тему: Значення класу ракоподібних Crustacea для екосистем і людини
  • Реферат на тему: Послуги сфери туризму і супутнього йому сервісу в програмі річкового (круїз ...
  • Реферат на тему: Соціальний статус сучасного робітничого класу країни і його проблеми
  • Реферат на тему: Розробка класу в PHP