Міністерство освіти та науки України
Чернівецький національний університет імені Юрія Федьковича
Факультет комп¢ютерних наук
Кафедра комп¢ютерних систем і мереж
Реферат
Мова програмування C++ та середовище розробки Microsoft Visual C++
2007р.
АНОТАЦІЯ
В програмному документі описані загальні відомості про мову програмування C++ та середовище розробки Microsoft Visual C++, способи структуризації та відладки програм, вбудовані елементи мови які використовувались в даній роботі.
Програмний документ містить 6 розділів та 13 сторінок.
ЗМІСТ
1. ЗАГАЛЬНІ ВІДОМОСТІ
2. ЕЛЕМЕНТИ МОВИ
3. СПОСОБИ СТРУКТУРИЗАЦІЇ ПРОГРАМИ
4. ЗАСОБИ ОБМІНУ ДАНИМИ
5. ВБУДОВАНІ ЕЛЕМЕНТИ
6. ЗАСОБИ ВІДЛАДКИ ПРОГРАМИ
ДЖЕРЕЛА ЛІТЕРАТУРИ
1. ЗАГАЛЬНІ ВІДОМОСТІ
C++ був розвинутий з мови програмування C і за дуже малими виключеннями зберігає C як підмножину. Базова мова, C підмножина C++, спроектована так, що існує дуже близька відповідність між його типами, операціями й операторами і комп'ютерними об'єктами, з якими безпосередньо приходиться мати справу: числами, символами й адресами [5, с. 48].
Microsoft VisualC++ містить безліч інтегрованих засобів візуального програмування. Компілятор VisualC++ містить багато нових інструментальних засобів і поліпшених можливостей, надає величезні можливості в плані оптимізації додатків, внаслідок чого можна отримати виграш як відносно розміру програми, так і відносно швидкості її виконання, незалежно від того, що являє собою ваш додаток.
Система Microsoft VisualC++ дозволяє створювати як маленькі програми і утиліти для персонального використання, так і корпоративні системи, що працюють з базами даних на різних платформах.
2. ЕЛЕМЕНТИ МОВИ
Таблиця 2.1 Рекомендації комітету ANSI розробникам компіляторів мови С.
Аспект | Запропоновані стандарти |
Типи даних | Чотири: символьний, цілочисельний, з плаваючою крапкою і перелік |
Коментарі | / * — початок, * / — кінець; доданий — //: набір символів в рядку справа ігноруватиметься компілятором |
Довжина ідентифікатора | 31 символ; цього достатньо для забезпечення унікальності ідентифікатора |
Стандартні ідентифікатори і файли | Розроблений мінімальний набір ідентифікаторів і файлів заголовків, необхідних для здійснення базових операцій, наприклад введення/виведення |
Аспект | Запропоновані стандарти |
Директиви препроцесора | Значку #, з якого починається директива препроцесора, може передувати відступ (будь-яка комбінація пропусків і символів табуляції), що допомагає відрізнити директиву від решти програмного коду; у деяких ранніх компіляторах існувала вимога поміщати директиви препроцесора тільки починаючи з першої позиції рядка |
Запис виразів в декілька рядків | Cуміжні літерали об'єднуються; таким чином, вираз з оператором #define може бути записано в два рядки |
Стандартні бібліотеки | У запропонованому стандарті ANSI визначено базовий набір зовнішніх і системних функцій, таких як read() і writе() |
Керування виведнням | Узгоджено набір керуючих послідовностей, включаючи символи форматування, такі як розрив рядка, розрив сторінки і символ табуляції |
Ключові слова | Узгоджено мінімальний набір ключових слів, необхідних для побудови працездатних виразів на мові С |
sizeof() | Оператор sizeof () повинен повертати значення типу size_t замість системно-залежної цілочисельної змінної |
Прототипи функцій | Компілятори мови С повинні підтримувати програми, які використовують, так і ті, що не використовують прототипи функцій |
Аргументи командного рядки | Узгоджено і затверджено єдиний синтаксис використання аргументів командного рядка |
Аспект | Запропоновані стандарти |
Тип даних void | Ключове слово void може використовуватися у функціях, що не повертають значення; для функції, що повертає значення, результат може бути приведений до типу void: це служить вказівкою компілятору, що значення, що повертається навмисно ігнорується |
Використання структур | Відмінено вимогу унікальності імен членів структур і об'єднань; структури можуть передаватися у вигляді аргументів функцій і повертатися функціями, а також привласнюватися іншим структурам того ж типу |
Оголошення функцій | Оголошення функції може включати список типів аргументів, на підставі якого компілятор визначає число і тип аргументів |
Шістнадцяткові числа | Шістнадцяткове число повинне починатися з позначення \х, за яким слідує декілька шістнадцяткових цифр (0-9, а-f, A-F); наприклад, десятковому числу 16 відповідає шістнадцяткове \х10 (допускається також запис 0x10) |
3. СПОСОБИ СТРУКТУРИЗАЦІЇ ПРОГРАМИ
Мова С підтримує модульне програмування, суть якого полягає в можливості роздільної компіляції і компоновки різних частин програми. Наприклад, можна виконати компіляцію тільки тієї частини програми, яка була змінена в ході останнього сеансу редагування. Це значно прискорює процес розробки великих і навіть середнього розміру проектів, особливо якщо доводиться працювати на повільних машинах. Якщо б мова С не підтримувала модульне програмування, то після внесення невеликих змін в програмний код довелося б компілювати повністю всю програму, що могло б зайняти дуже багато часу.
Найбільш істотна відмінність C++ від мови С полягає у використанні концепції об'єктно-орієнтованого програмування. Класи є фундаментальною концепцією об'єктно-орієнтованого програмування. Визначення класу включає оголошення всіх полів, можливо, з початковими значеннями, а також описи функцій, призначених для маніпулювання значеннями полів - методів. Об'єкти є змінними типу класу. Кожен об'єкт може містити власні набори закритих і відкритих даних [4].
Унікальні особливості функцій
Мова C++ дозволяє задавати імена і типи параметрів функції прямо всередині круглих дужок, що слідують за ім’ям функції. Наприклад:
void* vfunc(void *dest, int з, unsigned count)
{...}
Транслятор мови C++ перевірить відповідність фактичних типів значень, переданих у функцію, формальним типам аргументів функції. Також буде перевірена відповідність типу значення типу змінної, якій привласнюється це значення, що повертається.
Перевантаження функцій
У C++ можна використовувати однакові імена для декількох функцій. Звичайно різні функції мають різні імена, але іноді вимагається, щоб одна і та ж функція виконувала схожі дії над об'єктами різних типів. В цьому випадку є зміст визначити декілька функцій з однаковим ім'ям, але різним тілом. Такі функції повинні мати відмінні набори аргументів, щоб компілятор міг розрізняти їх. Не дивлячись на те, що різні функції мають одне ім'я, по типу аргументів компілятор легко зможе визначити, яку версію функції слід викликати у кожному конкретному випадку [4, c.244].
Стандартні значення параметрів функцій
У C++ можна задавати параметрам функцій значення за замовчуванням. У такому випадку при виклику функції можуть бути вказані значення тільки деяких параметрів, тоді як іншим вони будуть призначені автоматично.
Списки аргументів змінного розміру
У C++ за допомогою трьокрапки (...) можуть бути описані функції з невизначеним набором параметрів. Контроль за типами параметрів таких функцій не ведеться, що підвищує гнучкість їх використовування.
Використання посилань на аргументи функцій
За допомогою оператора & можна задати передачу аргументів функції по посиланню, а не по значенню. Наприклад:
void increment(int &variable_reference)
{ variable_reference++; }
Оскільки параметр variable_reference визначений як посилання, його адреса привласнюється адресі змінної i при виклику функції increment (). Остання виконує приріст значення параметра.
Покажчики типу void
У C++ тип void використовується для позначення того, що функція не повертає ніяких значень. Покажчик, що має тип void, може бути привласнений будь-якому іншому покажчику базового типу.
4. ЗАСОБИ ОБМІНУ ДАНИМИ
C++ має в своєму розпорядженні свій власний файл заголовків IOSTREAM.H, що містить набір засобів введення-виведення, специфічних для цієї мови. Потокове введення-виведення в C++ організовується за допомогою комплекту стандартних класів, що підключаються за допомогою файлу IOSTREAM.H. Ці класи містять перевантажені оператори введення >> і виведення <<, які підтримують роботу з даними різних типів. Щоб краще зрозуміти, чому легше працювати з потоками в C++, давайте пригадаємо, як взагалі в мові С реалізується введення і виведення даних. Перш за все мова С не має вбудованих засобів введення-виведення. Всі функції, такі як printf() або scanf(), надаються через зовнішні бібліотеки, хоча і вважаються стандартними, але не є частиною самої мови. У принципі, це дозволяє гнучко вирішувати проблеми, що виникають в різних додатках. Труднощі з'являються у зв'язку з тим, що подібного роду функцій дуже багато, вони по-різному повертають значення і приймають різні аргументи. Програмісти покладаються головним чином на функції введення-виведення формату printf(), scanf() і їм подібні, особливо якщо доводиться працювати з числами, а не з текстом. Ці функції достатньо універсальні, але часто, через велику кількість різних специфікаторів форматування, стають надто громіздкими і важко читаними. Мова C++ так само не має в своєму розпорядженні вбудованих засобів введення-виведення, але пропонує модульний підхід до рішення даної проблеми, групуючи можливості введення-виведення в двох основних потокових класах: istream - містить засоби введення, ostream - містить засоби виведення. У всіх цих класах реалізовані оператори << і >>, оптимізовані для роботи з конкретними даними. Бібліотека IOSTREAM.H містить також класи, за допомогою яких можна керувати введенням-виведенням даних з файлів: ifstream - породжений від istream і підключає до програми файл, призначений для введення даних, а ofstream - породжений від ostream і підключає до програми файл, призначений для виведення даних.