Я новичок в 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
и ошибка происходит по методу специализации шаблона. Пожалуйста, укажите на мои ошибки. Спасибо.