Yes, it's true. Declaration and implementation are generally put into the header file all together. Some compilers experimented with an export keyword that would allow them to be separated, but that has been removed from C++0x. Check out this FAQ entry for all the dirty details.