Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
 Аватар для invzful
0 / 0 / 3
Регистрация: 09.02.2015
Сообщений: 79

Перегрузка функции

24.12.2017, 18:22. Показов 927. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста, почему не получается перегрузить функцию(например вместо int поставить float)

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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include "stdafx.h"
#include <iostream>
using namespace std;
int arr[10] = { 1, 3, 2, 4, 8, 11, 3, 3, 8, 7 };
int maxValue()
{
    int max = arr[0];
 
    for (int i = 0; i < 10; ++i) {
        if (arr[i] > max) {
            max = arr[i];
        }
        
    }
    return max;
}
 
int minValue()
{
    int min = arr[0];
 
    for (int i = 0; i < 10; ++i) {
        if (arr[i] < min) {
            min = arr[i];
        }
        
    }
    return min;
}
 
float maxValue()
 
{
    float max = arr[0];
 
    for (int i = 0; i < 10; ++i) {
        if (arr[i] > max) {
            max = arr[i];
        }
 
    }
    return max;
 
}
 
float minValue()
{
    float min = arr[0];
 
    for (int i = 0; i < 10; ++i) {
        if (arr[i] < min) {
            min = arr[i];
        }
 
    }
    return min;
}
 
int main()
{
    setlocale(0, "Rus");
    cout << "Минимальный элемент массива: " << minValue() << endl;
    cout << "Максимальный элемент массива: " << maxValue() << endl;
    cout << "Сумма чисел максимального и минимального элементов равна " << minValue() + maxValue() << endl;
    system("pause");
 
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.12.2017, 18:22
Ответы с готовыми решениями:

Перегрузка в виде метода VS Перегрузка в виде функции друг
Привет! Собственно сабж: В каких случаях используется перегрузка в виде метода, а когда в виде функции друг? Добавлено через 4...

Вычислить функции с использованием их разложения в степенной ряд. Функции и Перегрузка функций
Добрый день. Дана лабораторная работа, (см. ниже 2 скриншота) по заданию нужно вычислить функции с использованием их разложения в степенной...

Дружественные функции. Наследование. Перегрузка функции
Здравствуйте, у меня проблема Не знаю куда Вставить имеющийся код(В какую строчку или строчки кода). Первый код это было 1 задание, 2-ой...

10
54 / 54 / 23
Регистрация: 02.09.2009
Сообщений: 285
24.12.2017, 18:29
Только разного типа возвращаемого значения для перегрузки функций не достаточно
1
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
24.12.2017, 18:40
Как-то лень писать одно и то же по 2 раза,
используем сразу шаблон:
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
#include <iostream>
 
using namespace std;
 
template<class T>
T maxValue(T* arr,int n)
{
    T max = arr[0];
 
    for (int i = 0; i < n; ++i) {
        if (arr[i] > max) {
            max = arr[i];
        }
 
    }
    return max;
}
 
template<class T>
T minValue(T* arr,int n)
{
    T min = arr[0];
 
    for (int i = 0; i < 10; ++i) {
        if (arr[i] < min) {
            min = arr[i];
        }
 
    }
    return min;
}
 
 
int main()
{
    setlocale(0, "Rus");
    int arr[10] = { 1, 3, 2, 4, 8, 11, 3, 3, 8, 7 };
    cout << "Минимальный элемент целочисленного массива: " << minValue(arr,10) << endl;
    cout << "Максимальный элемент целочисленного массива: " << maxValue(arr,10) << endl;
    double darr[10] = { 1.1, 3.0, 2.0, 4.5, 8.9, 11.99, 3., 3., 8., 7. };
    cout << "Минимальный элемент действительного массива: " << minValue(darr,10) << endl;
    cout << "Максимальный элемент действительного массива: " << maxValue(darr,10) << endl;
    system("pause");
    return 0;
}
1
 Аватар для invzful
0 / 0 / 3
Регистрация: 09.02.2015
Сообщений: 79
24.12.2017, 23:59  [ТС]
у меня просто задание такое) сначала использовать перегрузку, а потом шаблон. Большое спасибо что упростили)

Добавлено через 4 часа 56 минут
Помогите с перегрузкой пожалуйста никак не пойму. Хоть и понимаю как работает, но в данном случае не могу сам сделать
0
54 / 54 / 23
Регистрация: 02.09.2009
Сообщений: 285
25.12.2017, 12:35
Просто подставьте вместо T в функциях, которые вам привели, нужные типы данных и получите две перегруженные функции.
1
 Аватар для invzful
0 / 0 / 3
Регистрация: 09.02.2015
Сообщений: 79
25.12.2017, 17:29  [ТС]
ставил, писало что то типо expression must have pointer-to-object type, это как я понял что-то с указателями проблемы)
0
54 / 54 / 23
Регистрация: 02.09.2009
Сообщений: 285
25.12.2017, 23:20
Значит, что-то не то написали
0
 Аватар для invzful
0 / 0 / 3
Регистрация: 09.02.2015
Сообщений: 79
25.12.2017, 23:24  [ТС]
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 "stdafx.h"
#include <iostream>
 
using namespace std;
 
 
double maxValue(double* arr, int n)
{
    double max = arr[0];
 
    for (int i = 0; i < n; ++i) {
        if (arr[i] > max) {
            max = arr[i];
        }
 
    }
    return max;
}
 
 
int minValue(int* arr, int n)
{
    int min = arr[0];
 
    for (int i = 0; i < 10; ++i) {
        if (arr[i] < min) {
            min = arr[i];
        }
 
    }
    return min;
}
 
 
int main()
{
    setlocale(0, "Rus");
    int arr[10] = { 1, 3, 2, 4, 8, 11, 3, 3, 8, 7 };
    cout << "Минимальный элемент целочисленного массива: " << minValue(arr, 10) << endl;
    cout << "Максимальный элемент целочисленного массива: " << maxValue(arr, 10) << endl;
    double darr[10] = { 1.1, 3.0, 2.0, 4.5, 8.9, 11.99, 3., 3., 8., 7. };
    cout << "Минимальный элемент действительного массива: " << minValue(darr, 10) << endl;
    cout << "Максимальный элемент действительного массива: " << maxValue(darr, 10) << endl;
    system("pause");
    return 0;
}
Добавлено через 38 секунд
Ошибка в строках 40 и 42, если их закоментить, то программа работает, подскажите пожалуйста
0
 Аватар для Herji
299 / 208 / 174
Регистрация: 11.05.2016
Сообщений: 655
25.12.2017, 23:35
Цитата Сообщение от invzful Посмотреть сообщение
Ошибка в строках 40 и 42, если их закоментить, то программа работает, подскажите пожалуйста
У Вас функции не перегружены;

Цитата Сообщение от invzful Посмотреть сообщение
double maxValue(double* arr, int n)
Цитата Сообщение от invzful Посмотреть сообщение
int minValue(int* arr, int n)
просто две разные функции;
вот пример перегрузки на пальцах:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
double foo(double x)
{
    return x/2;
}
 
int foo(int x)
{
    return x/2;
}
 
int main()
{
    int val = 1;
    double dval = 1.0;
 
    std::cout << foo(val) << "\n"; // output 0
    std::cout << foo(dval); // output 0.5
/*...*/
1
 Аватар для invzful
0 / 0 / 3
Регистрация: 09.02.2015
Сообщений: 79
25.12.2017, 23:41  [ТС]
Тупанул) спасибо всем кто отвечал, помогли)
Теперь работает и от шаблона и от перегрузки
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
26.12.2017, 00:15
Функции/шаблоны по возвращаемому значению не перегружаются. Только по набору аргументов.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.12.2017, 00:15
Помогаю со студенческими работами здесь

Перегрузка операторной функции и функции !
3.16Разработать класс ThreeAngle для работы с плоскими треугольниками. В качестве членов-данных задаются длины трех сторон треугольника....

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

Перегрузка функции
Создайте функцию max(), которая возвращает наибольший из трёх численных аргументов, используемых при вызове функции. Перегрузите функцию...

Перегрузка функции
Вот запутался в простенькой функции. Вроде все правильно, но выдает не то что ожидалось, а какие-то адреса. Помогите, а? вот код ...

перегрузка функции << и >>
//include &lt;stdio.h&gt; //include &lt;iostream.h&gt; //include &lt;fstream.h&gt; //include &lt;string.h&gt; char group= “\0”; char otchet= “Print.txt”;...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru