Я завораживаю с помощью определяющих функций оператора друга. Мой код выглядит следующим образом:C++ Использование ключевого слова оператора с шаблоном?
template <typename typ>
class VecClass
{
public:
VecClass();
/* other class definitions */
friend void operator+(VecClass op1,VecClass op2);
}
template <typename typ>
void VecClass<typ>::operator+(VecClass<typ> &op1,VecClass<typ> &op2)
{
/* do some stuff on op1 and op2 in here */
}
где VecClass является классом для создания векторов и выполнять различные функции на этих векторах (нотабене я упростил код, чтобы попробовать и быть как можно более четкими). При компиляции, используя
int main()
{
VecClass=a,b;
a+b;
return 0;
}
Я получаю следующую ошибку компиляции
error C2039: '+' : is not a member of 'VecClass<typ>'
Я явно не хватает что-то и был бы признателен за любые предложения. Thanx.
'friend' функция не является функцией-членом. – chris