c:\users\ruben_000\desktop\user\homework.h(134): error C2244: 'Homework<T>::SetName' : unable to match function definition to an existing declaration
1> definition
1> 'void Homework<T>::SetName(T)'
1> existing declarations
1> 'void Homework<T>::SetName(T)'
Remember to match the declaration correctly, you missed a const at the end and at the beginning. In addition, one can't return Homework AFAIK, it must be Homework<T>, same for input.
You can write Homework without <T> inside the class definition and it will assume Homework<T> but outside the class definition you'll have to write Homework<T>.
You're right Peter87! I wonder if one can return a specific type of Homework like Homework<int>. Just tried, seems to work. Should we be explicit in our declaration of <T> or <int>? I guess it's up to each programmer if we're allowed to omit the type like you said...