I have different classes all arranged in a hierarchy.
To reduce the amount of code, I started creating template functions. The base class will use the template functions and some of the derived classes will also use the same functions. Where am I suppose to put all of these templates so I don’t get undefined reference issues like I have been? Should I put all the definitions in a header file and then just include that header files in the .cpp part of the class that call the functions. will that work? As of right now, all of my classes(class.cpp, class.h) compile fine, but everything blows up during the linking. I tried to put all the templates in a namespace and then include that namespace in the implementation of all my classes but that doesn’t seem to work. My question is, how would you go about making a separate entity that just holds templated functions that any class can use on it’s data members?
I have different classes all arranged in a hierarchy. To reduce the amount of
Share
I see a lot of people confused by this thing… templates are not types.
They become types when instantiated.
For this reason members of templates must stay in the same data unit you are going to use them.
If you template is generic and you want to use it in all your code, just put everything in header files.
Now, if you don’t like (and i would understand that) that you show declarations and definitions and implementation all in the same file, you can split templates in two different files.
For example, “list.h” with your declaration and “list.inc” with your implementation.
To make it work, you have to include both.