C++ FAQ Celebrating Twenty-One Years of the C++ FAQ!!!
(Click here for a personal note from Marshall Cline.)
Section 22:
[22.2] How do I separate interface from implementation in C++ (like Modula-2)?

Use an ABC.