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

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

24.12.2017, 18:22. Показов 918. Ответов 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
13771 / 10964 / 6491
Регистрация: 18.12.2011
Сообщений: 29,241
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_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru