Opaque pointer

However, they will not be able to de-reference such a pointer, and can only change the object's content by calling some procedure that has the missing information.

[2] The type Handle is an opaque pointer to the real implementation, that is not defined in the specification.

[5] This example demonstrates a way to achieve the information hiding (encapsulation) aspect of object-oriented programming using the C language.

A d-pointer is a private data member of the class that points to an instance of a structure.

This method allows class declarations to omit private data members, except for the d-pointer itself.