Коротка характеристика по С++.

Системи і середовища програмування ТОП.

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

У цьому визначенні можна вирізнити три частини.

1. ТОП використовує як елементи конструкції об' єктів, а не алгоритми.

2. Кожний об' єкт є реалізацією певного класу.

3. Класи організовані ієрархічно.

Лише в разі додержання всіх перелічених щойно вимог програма буде об' єктно - оріентованою.

Переваги об' єктного підходу

1. Об' єктний підхід дозволяє повною мірою використовувати виражальні можливості об' єктних та об' єктно - орієнтованих мов програмування:

С++ => використання ієрархії класів у процесі проектування.

2. Використання об' єктного підходу відчутно підвищує якість розробки в цілому та її фрагментів

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

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

5. Об' єктний підхід зорієнтований на людське сприйняття світу.

Структура програми. Правила Правої Руки.

Написання хороших програм вимагає розуму, смаку і терпіння.

[1] Колі ви програмуєте, ви створюєте конкретне представлення ідей вашого рішення деякої задачі. Нехай структура відбиває ці ідеї настільки явно, наскільки це можливо:

[a] Якщо ви вважайте "це" окремим поняттям, зробіть його класом.

[b] Якщо ви вважайте "це" окремим об' єктом, зробіть його об' єктом деякого класу.

[c] Якщо два класи мають загальними щось істотне, зробіть його базовим класом. Майже усі класи у вашій програмі матимуть щось загальне; заведіть (майже) універсальний базовий клас, і розробіть його найретельніше.

[2] Колі ви визначаєте клас, який не реалізує деякий математичний об' єкт, на зразок матриці або комплексного числа, або тип низького рівня, на зразок пов'язаного списку, то:

[a] Не використайте глобальні дані.

[b] Не використайте глобальні функції (не членуй).

[c] Не використайте відкриті дані -члени.

[d] Не використайте друзів, окрім як щоб уникнути [a], [b] чи [c].

[e] Не звертайтеся до даних- членів або інших об' єктів безпосередньо.

[f] Не поміщайте в клас "полі типу"; використайте віртуальні функції.

[g] Не використайте inline -функции, окрім як засіб істотної оптимізації.

Передусім, давайте напишемо програму, що виводить рядок видачі :

# #include

main()

{

cout << "Hello, world\n";

}

Рядок #include повідомляє компілятору, щоб він включивши стандартні можливості потоку введення і виводу, що знаходяться у файлі stream.h. Без цих описів вираження cout << "Hello, world" не мало б сенсу. Операція << ("поміститив") пише свій перший аргумент, в іншому випадку, рядок "Hello, world" в стандартний потік виведення cout.

Рядок - це послідовність символів, поміщена в подвійні лапки.

Інша частина програми

main()

{ .. } визначає функцію, названу main.

Кожна програма повинна містити функцію з ім 'ям main, і робота програми розпочинається з виконання цієї функції.

Звідки з'явилися вихідний потік cout і код, що реалізовує операцію виводу << Команда компіляції в C++ зазвичай називається CC.

Припустимо, що програма з "Hello, world" зберігається у файлі з ім 'ям hello.c, тоді ви можете її скомпілювати і запустити приблизно так ($ - системне запрошення) :

$ $ CC hello.c

$ $ a.out

Hello, world

$

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

$ $ CC hello.c - o hello

$ $ hello

Hello, world

$

Введення

Наступна (досить багатослівна) програма пропонує вам ввести число дюймів. Після того, як ви це зробите, вона надрукує відповідне число сантиметрів.

# #include

main()

{

int inch = 0; // inch - дюйм

cout << "inches";

cin >> inch;

cout << inch;

cout << " in = ";

cout << inch*2.54;

cout << " cm\n";

}

Перший рядок функції main() описує цілую змінну inch. Її значення прочитується за допомогою операції >> ("узяти з") над стандартним потоком введення cin. Після її запуску ваш термінал може виглядати приблизно так:

$ $ a.out

inches=12

12 in = 30.48 cm

$

У даному прикладі на кожну команду виводу доводитися один оператор; це занадто довго. Операцію виводу << можна застосовувати до її власного результату, так що останні чотири команди виводу можна було записати одним оператором:

cout << inch << " in = " << inch*2.54 << " cm\n";

Насправді, приведені вище програми написані на C++, "розширеному" операціями введення-виводу за допомогою використання бібліотек і включення файлів за допомогою #include.

Коментарі

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

Символи /* починають коментар, що закінчується символами */. Уся ця послідовність символів еквівалентна символу пропуску (наприклад, символу пропуску). Це найкорисніше для багаторядкових коментарів і вилучення частин програми при редагуванні, проте слід пам'ятати, що коментарі /* */ не можуть бути вкладеними.

Символи // починають коментар, який закінчується у кінці рядка, на якому смороді з'явилися. Знову, уся послідовність символів еквівалентна пропуску. Цей спосіб найбільш корисний для коротких коментарів. Символи // можна використати для того, щоб закоментувати символи /* або */, а символами /* можна закоментувати //.

Типи і Опису

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

int inch; визначає, що inch має тип int, тобто, inch є цілою змінною.

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

Після того, як включень файл stream.h, об' єкт типу int може також бути іншим операндом <<, коли перший операнд ostream.

Тип об' єкту визначає не лише ті, які операції можуть до нього застосовуватися, але і сенс цих операцій. Наприклад, оператор cout << inch << " in = " << inch*2.54 << " cm\n";

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

Основні типи

Основні типи, що найбільш безпосередньо відповідають засобам апаратного забезпечення, такі:

char short int long float double

Перші чотири типи (char short int long) використовуються для представлення цілих, останні два (int long) - для представлення чисел з плаваючою точкою.

Змінна типу char має розмір, природний для зберігання символу на машині (зазвичай, байт), а змінна типу int має розмір, що відповідає цілій арифметиці на машині (зазвичай, слово). Діапазон цілих чисел, які можуть бути представлені типом, залежить від його розміру.