Well, you could have a regular ol' function named template. i.e. int template(char letter) or void template() or any other combination you could have for a function. There's also a C++ thingie called templates, where you would do something such as Template<T> or something along those lines. (I've never learned/used them personally). However, what they allow you to do is abstract data types out from your code. For example, take the algorithm for a linked list. You can add data to the list, remove data, search the list, sort the list, etc. However, just to add data to the end of the list, for example, it doesn't matter what data type the list is. Templates allow you to avoid redoing multiple classes and functions for an integer linked list, a character linked list, a double linked list, etc. Rather, you can abstract out this data by creating a linked list of type T. ;) This way you can reuse that part of your code.