En C++ tanto como en C o cualquier lenguaje usas lo que te parezca mas apropiado en un contexto determinado, ya sea por la legibilidad del codigo, la facilidad de implementarlo, el codigo implicado por detras, la complejidad necesaria para la tarea, etc. En este caso el codigo es perfectamente valido en C++, esta en cada uno usarlo o no.
Aca tenes el codigo fuente de una impresora virtual (no creo que sea un tema sencillo aunque no lo investigue mucho):
http://www.mabuse.de/tech-vprinter.mhtml