Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Новые рефераты » Технологія CORBA і особливості проектування баз даних

Реферат Технологія CORBA і особливості проектування баз даних





і команди - власне виділення пам'яті потрібного розміру і копіювання в неї символів рядка. Це можна розглядати як дрібне незручність. p align="justify"> Наступна проблема набагато серйозніша - ви повинні звільнити явно виділену динамічну пам'ять, тобто викликати операцію delete.

Програмістам на C + + добре відомі різні прийоми, які дозволяють вирішити дану проблему - наприклад, використання класів auto_ptr <> і string з STL. Оскільки ідея у всіх таких підходах одна - В«загорнутиВ» покажчик на захищається ресурс в деяку оболонку, яка і виконує всі необхідні дії - то компілятор idl2cpp просто генерує таку оболонку. Це і є _var-клас. Майте на увазі - _var-класи здатні управляти різними ресурсами, а не обов'язково пам'яттю. Наприклад, вони часто використовуються для правильного ведення лічильника посилань. p align="justify"> З використанням класу CORBA :: String_var, той же приклад можна записати так:

Стиль CORBA для C + +:

CORBA :: String_var str = CORBA :: string_dup ("My string");

str = CORBA :: string_dup ("My anither string");

Ніякої витоку пам'яті тут не буде: пам'ять, зайнята в першому рядку, буде автоматично звільнена як частина операції привласнення, а пам'ять, зайнята у другому рядку, буде звільнена деструктором класу CORBA :: String_var.класси виконують і інші дуже корисні сервісні функції.

Рядки

Рядки CORBA бувають двох видів - В«необмеженіВ» (unbounded) і В«обмеженіВ» (bounded). Різниця між ними полягає в тому, що обмежені рядки не можуть бути більше явно вказаної довжини. Хоча більшість реалізацій відображення рядків IDL на C + + ігнорує це розходження, завжди слід мати його на увазі. p align="justify"> Синтаксис завдання рядків дуже простий:

typedef string MyAliasForString; string <20> BoundedString_20;

typedef wstring MyAliasForWideString;

Використовувати typedef в загальному випадку необов'язково - все залежить від того, в якому місці IDL-файлу з'являються такі оголошення.

Компілятор idl2cpp генерує класичні типи даних C + + - char * або wchar_t *, і, крім того, об'єктні оболонки навколо покажчиків - _var-і _out-класи. Out-класи зручно використовувати при роботі з методами, які повертають результат через список аргументів цього методу. p align="justify"> Деякі особливості має управління динамічною пам'яттю для рядків. Використання new і delete може (потенційно) привести до неузгодженості засобів, що використовуються прикладним додатком і ORB му. Щоб уникнути цієї проблеми, потрібно використовувати не new, а CORBA :: string_alloc () або CORBA :: string_dup (), і не delete, а CORBA :: string_free ().


Масиви


Під масивом...


Назад | сторінка 12 з 15 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Призначення CORBA і її об'єктно-орієнтованих компонентів
  • Реферат на тему: Вбудовані типи даних в С #. Масиви. Рядки. Регулярні вирази
  • Реферат на тему: Розробка термогенератора, який буде використовувати тепло двигуна для заряд ...
  • Реферат на тему: Створення базового класу &Рядок&, рядки ідентифікатора і десяткової рядка. ...
  • Реферат на тему: Сортування рядків матриці в програмі Pascal