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