Я новичок в C++ и пытаюсь использовать шаблон, но у меня проблемы. Что я пытаюсь сделать, так это: попытаться вычислить квадрат числа с использованием шаблона, и число может быть базовым типом данных, таким как int, float, а также комплексными числами. Я также реализовал сложный класс, используя шаблон, и коды следующие:
template <typename T>
class Complex {
public:
T real_;
T img_;
Complex(T real, T img) : real_(real), img_(img) { }
};
template <typename T>
T square(T num) {
return num * num;
}
template <>
Complex<typename T> square(Complex<typename T> num) {
T temp_real = num.real_*num.real_ - num.img_*num.img_;
T temp_img = 2 * num.img_ * num.real_;
return Complex(temp_real, temp_img);
}
Я попытался использовать специализацию шаблона для особого случая, но это дало мне ошибку:
using ‘typename’ outside of template
и ошибка возникает в методе специализации шаблона. Пожалуйста, укажите на мои ошибки. Спасибо.
<complex>
, который, возможно, полностью устраняет необходимость в каком-либо коде. - person Kerrek SB   schedule 12.07.2011