илі та технології програмування, включаючи традиційне директивне програмування, ООП, узагальнене програмування, метапрограмування (шаблони, макроси);
передбачуване виконання програм є важливим достоїнством для побудови систем реального часу. Весь код, неявно генерується компілятором для реалізації мовних можливостей (наприклад, при перетворенні змінної до іншого типу), визначений у стандарті. Також строго визначені місця програми, в яких цей код виконується. Це дає можливість заміряти або розраховувати час реакції програми на зовнішню подію;
автоматичний виклик деструкторів об'єктів при їх знищенні, причому в порядку, зворотному викликом конструкторів. Це спрощує (досить оголосити змінну) і робить більш надійним звільнення ресурсів (пам'ять, файли, семафори і т. П.), А також дозволяє гарантовано виконувати переходи станів програми, не обов'язково пов'язані із звільненням ресурсів (наприклад, запис у журнал);
користувача функції-оператори дозволяють коротко і ємко записувати вирази над користувацькими типами в природній алгебраїчній формі;
мову підтримує поняття фізичної (const) і логічної (mutable) константності. Це робить програму надійніше, оскільки дозволяє компілятору, наприклад, діагностувати помилкові спроби зміни значення змінної [9]. Оголошення константності дає програмісту, що читає текст програми додаткове уявлення про правильне використання класів і функцій, а також може бути підказкою для оптимізації. Перевантаження функцій-членів за ознакою константності дозволяє визначати зсередини об'єкта мету виклику методу (константних для читання, неконстантний для зміни). Оголошення mutable дозволяє зберігати логічну константність при використанні кешей і ледачих обчислень;
використовуючи шаблони, можливо створювати узагальнені контейнери і алгоритми для різних типів даних, а також спеціалізувати і обчислювати на етапі компіляції;
можливість імітації розширення мови для підтримки парадигм, які не підтримуються компіляторами безпосередньо. Наприклад, бібліотека Boost.Bind дозволяє пов'язувати аргументи функцій;
можливість створення вбудованих предметно-орієнтованих мов програмування. Такий підхід використовує, наприклад бібліотека Boost.Spirit, що дозволяє задавати EBNF-граматику парсеров прямо в коді C ++;
використовуючи шаблони і множинне спадкування можна імітувати класи-домішки і комбінаторну параметризацію бібліотек. Такий підхід застосований в бібліотеці Loki, клас SmartPtr якої дозволяє, керуючи всього декількома параметрами часу компіляції, згенерувати близько 300 видів «розумних покажчиків» для управління ресурсами;
кроссплатформенность: стандарт мови накладає мінімальні вимоги на ЕОМ для запуску скомпільованих програм. Для визначення реальних властивостей системи виконання в стандартній бібліотеці присутні відповідні можливості (наприклад, std :: numeric_limits lt; T gt;) [10]. Доступні компілятори для великої кількості платформ, на мові C ++ розробляють програми для самих різних платформ і систем;
ефективність. Мова спроектований так, щоб дати програмісту максимальний контроль над усіма аспектами структури та порядку виконання програми. Жодна з мовних можливостей, що призводить до додаткових накладних витрат, не є обов'язковою для використання - при необхідності мова дозволяє забезпечити максимальну ефективність програми;
є можливість роботи на низькому рівні з пам'яттю, адресами;
висока сумісність з мовою C, що дозволяє використовувати весь існуючий C-код (код на C може бути з мінімальними переробками скомпільовано компілятором C ++; бібліотеки, написані на C, звичайно можуть бути викликані з C ++ безпосередньо без будь яких додаткових витрат, у тому числі і на рівні функцій зворотного виклику, дозволяючи бібліотекам, написаним на C, викликати код, написаний на С ++).
3.2 Розробка алгоритму роботи програми
Алгоритм роботи програми складається з декількох частин:
алгоритм роботи частини «Вікно авторизації» », додатки інформаційно-пошукової системи (рис. 3.1);
алгоритм роботи частини «Головне вікно програми» », додатки інформаційно-пошукової системи (рис. 3.2);
алгоритм роботи частини «Вікно відкриття файлу БД» », додатки інформаційно-пошукової системи (рис. 3.3).
Малюнок 3.1 - Алгоритм роботи частини «Вікно авторизації», додатку інформаційно-пошукової системи
В основі частини «Вікно авторизації», додатку інформаційно-пошукової системи лежить створення модального діалогового вікна авторизації користувача (клас CDialogAuto, похідний від CDialog). Створення?? аблон вікна ...