здравствуйте вот код, есть пара вопросов:
#include "stdafx.h"
#include <iostream>
template <class T>
class Pair
{
public:
Pair(T x1, T y1) : x(x1), y(y1){;}
void showQ();
private:
T x,y;
};
int _tmain(int argc, _TCHAR* argv[])
{
Pair<double> a(37.0,5.0);
Pair<int> u(37,5);
a.showQ();
u.showQ();
return 0;
}
template <class T>
void Pair<T>::showQ()
{
std::cout<<x/y<<std::endl;
}
1) при объявлении
Pair<double> a(37.0,5.0);
Pair<int> u(37,5);
Мы указываем шаблонному классу, параметры какого типа мы передаем в конструктор, чтобы шаблонный класс мог сформировать конструктор соответствующего типа. Правильно?
2) Зачем при описании функции show(), в названии класса добавляется <T> (Pair<T>::showQ()), это же и так понятно что это функция шаблонного класса