Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Не підтверджено.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.08 Mб
Скачать

Int mainO

{

myClass 0bjA(7, 9), 0bjB(5,2);

cout«"Значення ObjA =" « ObjA.PutAO «" і"« ObjA.PutB() « endl; cout«"Значення ObjB =" « ObjB.PutAO <<" і"<< ObjB.PutBO << er|dl; getchO; return 0;

}

Ця програма відображає на моніторі такі ж результати, як і її попередня вер­сія. Проте зверніть увагу на те, як ініціалізовано члени а і Ь: myClass(int х, int у): а(х), Ь(у) {}

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

  1. Використання ключового слова asm

Незважаючи на те, що мова програмування C++ - всеосяжна і потужний засіб для створення сучасних програмних продуктів, проте трапляються ситуації, об­роблення яких для неї виявляється дуже скрутним1. Щоб справитися з подібними спеціальними ситуаціями, мова C++ надає засіб, який дає змогу увійти до коду програми, написаного мовою Асемблер, абсолютно ігноруючи С++-компілятор. Цим засобом і є настанова asm, використовуючи яку можна вбудувати Асемблер- ний код програми безпосередньо у С++-програму. Цей програмний код відкомпі- люється без будь-яких змін і стане частиною коду Вашої програми, починаючи з місця знаходження настанови asm.

За допомогою ключового слова asm у C++-програму вбудовується прог­рамний код, написаний мовою Асемблер.

Загальний формат використання ключового слова asm має такий вигляд: asm ("rad");

У цьому записі елемент код означає настанову, написану мовою Асемблер, яка бу­де вбудована у С++-програму. При цьому деякі компілятори також дають змогу використовувати і інші формати запису настанови asm: asm настанова;

asm настанова newline

asm{

послідовність настанов

}

У цьому записі елемент настанова означає будь-яку допустиму настанову мови Асемблер. Оскільки використання настанови asm залежить від конкретної реаліза­ції середовища програмування, то за подробицями реалізації потрібно звернутися до документації, що додається до Вашого компілятора.

На момент написання цього навчального посібника у середовищі Visual C++ (Microsoft) для вбудовування коду програми, написаного мовою Асемблер, пропо­нувалося використовувати настанову asm. У всьому іншому цей формат анало­гічний опису настанови asm.

Вартоа нати! Для використання настанови asm необхідно володіти доско­нальними знаннями мови Асемблер. Якщо Ви не вважаєте себе фахівцем з цієї мови, то краще поки що уникати використання настанови asm, оскільки не­обережне її застосування може спричинити важкі наслідки для Вашої опера­ційної системи.

  1. Специфікатор компонування функцій

У мові програмування C++ можна визначити, як функція зв'язується з Вашою програмою. За замовчуванням функції компонуються як С++-функції. Але, вико­ристовуючи специфікацію компонування, можна забезпечити компонування фун­кцій, написаних іншими мовами програмування. Загальний формат специфікатора компонування має такий вигляд: extern "мова" прототип_функи/і У цьому записі елемент мова означає потрібну мову програмування. Всі С++-ком- пілятори підтримують як С-, так і С++-компонування. Деякі компілятори також дають змогу використовувати специфікатори компонування для таких мов, як Fortran, Pascal або Visual Basic1.

Специфікатор компонування дає змогу визначити спосіб компонування фуункцїі.

Наведений нижче код програми дає змогу скомпонувати функцію cFun() як С- функцію.

Код програми 11.16. Демонстрація механізму застосування специфікатора компонування функцій #include <iostream> II Для потокового введення-виведення

using namespace std; II Використання стандартного простору імен

extern "С" void cFunO;