Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Vartashezik

Шаблоны функции

24.04.2013, 15:15. Показов 609. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делаю задание по программированию, нужна явная специализация шаблона.
Пишет ошибку:
obj\Debug\main.o||In function `main':|
C:\Users\sklad\Documents\CODEBLOCK\work8 .6\main.cpp|16|undefined reference to `int maxn<int>(int*, int)'|
C:\Users\sklad\Documents\CODEBLOCK\work8 .6\main.cpp|17|undefined reference to `double maxn<double>(double*, int)'|
C:\Users\sklad\Documents\CODEBLOCK\work8 .6\main.cpp|18|undefined reference to `char const* maxn<char const*>(char const**, int)'|
||=== Build finished: 3 errors, 0 warnings (0 minutes, 0 seconds) ===|


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
#include <cstring>
 
using namespace std;
 
template <class T>
T maxn(T arr[],int n);
 
template <> char * maxn<char*>(char* arr[], int n);
 
int main()
{
    int numbers_i[6] = {4,3,5,6,1,8};
    double numbers_d[4] = {24.42,13.4,0,-64.6542};
    const char* numbers_pc[5] = {"goga chmo_))", "Vano orex", "Dillo deeepth", "1234567890", "Ia baklagan!" };
    cout << "Max int: " << maxn(numbers_i, 6) << endl;
    cout << "Max double: " << maxn(numbers_d, 4) << endl;
    cout << "Max length string: " << maxn(numbers_pc, 5) << endl;
 
 
 
    return 0;
}
 
template <class T>
T max5(T arr[], int n)
{
    T max_dig = arr[0];
    for (int i = 1; i < n; i++)
    {
        max_dig = max_dig > arr[i] ? max_dig : arr[i];
    }
    return max_dig;
}
 
 
template <> char * maxn<char*>(char* arr[], int n)
{
    char * pc = arr[0];
    for (int i = 1; i < n; i++)
    {
        pc = strlen(pc) > strlen(arr[i]) ? pc : arr[i];
 
    }
    return pc;
}
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.04.2013, 15:15
Ответы с готовыми решениями:

Перевести код из функции в шаблоны функции
Короче, у меня есть прога написанная с помощью функций, теперь мне нужно написать её с помощью шаблонов функции... #include...

Шаблоны функции
Помогите решить срочняк:umnik: S=(exp(y)*exp(x))+sqrt(x)

Шаблоны функции
Очень нужно на завтра. Есть готовая программа. Нужно просто ее оформить в виде шаблонов функции( что-то такого рода: template &lt;class...

3
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
24.04.2013, 18:20
Vartashezik,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
#include <cstring>
 
using namespace std;
 
template <class T>
T* maxn(T *arr,int n);
 
template <>
char** maxn<char*>(char **arr, int n);
 
int main()
{
    int numbers_i[6] = {4,3,5,6,1,8};
    double numbers_d[4] = {24.42,13.4,0,-64.6542};
    char* numbers_pc[] = {"goga chmo_))", "Vano orex", "Dillo deeepth", "1234567890", "Ia baklagan!" };
    cout << "Max int: " << *maxn(numbers_i, 6) << endl;
    cout << "Max double: " << *maxn(numbers_d, 4) << endl;
    cout << "Max length string: " << *maxn(numbers_pc, 5) << endl;
 
    return 0;
}
 
template <class T>
T* maxn(T *arr, int n)
{
    T *max_dig = arr;
    for (int i = 1; i < n; i++)
    {
        max_dig[i] = max_dig[i] > arr[i] ? max_dig[i] : arr[i];
    }
    return max_dig;
}
 
 
template <> 
char ** maxn<char*>(char** arr, int n)
{
    char ** pc = arr;
    for (int i = 1; i < n; i++)
    {
        pc[i] = pc[i] > arr[i] ? pc[i] : arr[i];
 
    }
   return static_cast<char **>(pc);
}
0
Vartashezik
24.04.2013, 20:13
А зачем мне возвращать указатель и потом его разыменовывать, если можно сразу вернуть значение ?
381 / 352 / 113
Регистрация: 17.05.2012
Сообщений: 1,049
24.04.2013, 21:44
Vartashezik, я исправил ошибки, сделайте как вам нравится.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.04.2013, 21:44
Помогаю со студенческими работами здесь

Функции-шаблоны
Подсчитать норму матрицы по формуле А = (сумма по i ) maxai,j ( а и житое ) Вобще не понимаю как делать,а нужно уже к завтра, сделайте...

Функции-Шаблоны в С++
Как с помощью функций-шаблонов подсчитать сумму элементов, расположенных на побочной диагонали?

Шаблоны функции
Реализуйте следующие задание с использованием шаблона функции. Продемонстрируйте вызов шаблона для различных типов данных. Работа с...

Шаблоны функции
У меня есть код программы. Как переделать его в шаблонную функцию? Исходный код #include &quot;stdafx.h&quot; ...

Шаблоны, функции, etc
Софорумчане и просто зашедшие, прошу вашей помощи... Не могу разобраться как написать программу, в которой определяется шаблон для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru