Sometimes you need to convert a certain datatype to its binary stream ofbytes. An easy way to do it is to create a union that has two members:the datatype in question and an array of characters with a matchingsize. For example, to examine the binary representation of a pointer toa member function, the following program assigns the address of themember function f() to the union member p and then it examines thecorresponding character array bin_ptr:
class A { public: void f(); }; typedef void (A::*pmf)(); // pointer to member union U { pmf p; unsigned char bin_ptr[sizeof(pmf)]; }; int main() { U u = {0}; // initialize u.p = &A::f; // assign member function's address for (int j = 0; j< sizeof (U); j++) cout<< (int)u.bin_ptr[j]<<" "; // display each byte in p }