Puntero opaco

Los punteros opacos se encuentran en varios lenguajes de programación, incluidos Ada, C, C++ y Modula-2.Sin embargo, no serán capaces de usar este tipo de puntero para hacer referencia a su contenido y solo podrán hacer cambios en él mediante llamadas a procedimientos que sí tengan conocimiento para ello.Esto también supone una ventaja para el programador, ya que se pueden crear interfaces sencillas y ocultar la mayor parte de los detalles en otro fichero.[2]​ El tipo Handle es un puntero opaco a la verdadera implementación, que no está definida en la especificación.Observe que el tipo no es solo privado (para prohibir a los clientes el acceso directo al tipo, permitido solo mediante las operaciones), sino también limitado (para evitar la copia de la estructura de datos, previniendo así referencias colgantes.