Коротка характеристика по С++.
Системи і середовища програмування ТОП.
Об' єктно - орієнтоване програмування - це методологія програмування, яка базується на поданні програми у вигляді сукупності об' єктів, кожний із яких є реалізацією певного класу, а класи утворюють ієрархію на принципах успадкування.
У цьому визначенні можна вирізнити три частини.
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 має розмір, що відповідає цілій арифметиці на машині (зазвичай, слово). Діапазон цілих чисел, які можуть бути представлені типом, залежить від його розміру.