Непрозорий вказівник
Ця стаття потребує додаткових посилань на джерела для поліпшення її перевірності. (лютий 2016) |
Непрозорий вказівник — частковий випадок непрозорого типу даних у інформатиці. Це вказівник на запис чи структуру даних не описаного типу.
Непрозорі вказівники присутні у мовах програмування Ada, C, C++, D та Modula-2.
Непрозорі вказівники є способом приховування деталей імплементації від звичайних клієнтів, тому, такі клієнти не потребуватимуть перекомпіляції при зміні імплементації типу вказівника. Якщо динамічна бібліотека використовує непрозорі вказівники, то її модифікація не зруйнує бінарну сумісність з прикладними програмами.
Ця техніка описана у шаблоні проектування Міст. Також відома під іменами: handle клас, "Pimpl" (вказівник на імплементацію), "фаєрвол для компілятора", "d-pointer" та "Чеширський кіт".
Приклади
ред.Наприклад, стандартна бібліотека, яка є частиною специфікації мови програмування C, для вводу/виводу у файл використовує вказівник на FILE
, конкретна реалізація якого не задана.
C++
ред.У C++ часто зустосовується техніка "d-pointer". Коли в приватній секції класу присутній тільки вказівник на структуру описану в іншому файлі. Всі приватні члени класу переміщені в цю структуру. Це прокращує приховування даних та бінарну сумісність. Техніка придумана одним із авторів Qt, та широко використовується в Qt та KDE.
Див. також
ред.Посилання
ред.- The Pimpl idiom
- Compilation Firewalls
- The Fast Pimpl Idiom
- D-Pointers — KDE TechBase
Це незавершена стаття про програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |