Непрозорий вказівник

Непрозорий вказівник — частковий випадок непрозорого типу даних у інформатиці. Це вказівник на запис чи структуру даних не описаного типу.

Непрозорі вказівники присутні у мовах програмування Ada, C, C++, D та Modula-2.

Непрозорі вказівники є способом приховування деталей імплементації від звичайних клієнтів, тому, такі клієнти не потребуватимуть перекомпіляції при зміні імплементації типу вказівника. Якщо динамічна бібліотека використовує непрозорі вказівники, то її модифікація не зруйнує бінарну сумісність з прикладними програмами.

Ця техніка описана у шаблоні проектування Міст. Також відома під іменами: handle клас, "Pimpl" (вказівник на імплементацію), "фаєрвол для компілятора", "d-pointer" та "Чеширський кіт".

Приклади

Наприклад, стандартна бібліотека, яка є частиною специфікації мови програмування C, для вводу/виводу у файл використовує вказівник на FILE, конкретна реалізація якого не задана.

C++

У C++ часто зустосовується техніка "d-pointer". Коли в приватній секції класу присутній тільки вказівник на структуру описану в іншому файлі. Всі приватні члени класу переміщені в цю структуру. Це прокращує приховування даних та бінарну сумісність. Техніка придумана одним із авторів Qt, та широко використовується в Qt та KDE.

Див. також

Посилання