e.cpp #i nclude usin
Автор admin
Понедельник, 18 мая 2009 11:32
e.cpp #i nclude using std::size_t: tempiate void initKT a[R][C]) { for (size_t i =0: i < R; ++i) for (size_t j = 0: j < C; ++j) a[i][j] = TO; } tempiate void init2(T (&a)[R][C]) { // Ссылочный параметр for (size_t i =0; i < R: ++i) for (size_t j = 0; j < C; ++j) a[i][j] = TO; } int mainO { int a[10][20]; initl<10.2O(a): // Обязательно задаются размеры init2(a); // Автоматическое определение размеров } ///:- 200 Глава 5 • Шаблоны Размеры массивов не являются частью типа параметра функции, если только этот параметр не передается в виде указателя или ссылки. Шаблон функции init2 объявляет а ссылкой на двумерный массив, поэтому его размеры R и С определяются автоматически. Таким образом, init2 является удобным средством инициализации двумерных массивов произвольного размера. В шаблоне initl массив не передается по ссылке, поэтому размер приходится задавать явно (хотя параметр типа все равно может быть определен автоматически). Перегрузка шаблонов функций Одноименные шаблоны функций могут перегружаться так же, как и обычные функции.
Комментарии закрыты.
Последние комментарии