Well, technically, you could make a class template with a .cpp extension and include it in another source file. However, this is not how it is normally done. For any type of file that you want to include in another source file (or another header for that matter), the .h or .hpp extension is used.