Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
2 / 2 / 1
Регистрация: 09.02.2011
Сообщений: 49

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

13.03.2011, 11:43. Показов 2046. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Стало интересно из-за возможна перегрузка функций в программе на языке С++, с чем это связано, как реализовано внутри программы?
Кто подскажет?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.03.2011, 11:43
Ответы с готовыми решениями:

Множественное наследование, Перегрузка функций, Перегрузка операторов, Использование дружественных функций и классов, Использование шаблонов классов
Здравствуйте!!! Я бы хотел попросить помоч решить...ну или скинуть примеры таких задач, если вдруг у вас они завалялись на компе или...

Перегрузка функций. Реализация функций
Разработать функцию f(x) , которая возвращает младшую цифру натурального числа x . Вычислить с ее помощью значение выражения z= f(a) +...

перегрузка функций.
создать перегруженную функцию, которая меняет местами цифру под номером л в числе а с цифрой под номером к в числе б. я так сделала, ...

16
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
13.03.2011, 12:24
Функцию в языке С++ однозначно определяет ее сигнатура - это имя функции + список ее формальных параметров. Таким образом, функции с одинаковыми именами, но разными списками параметров, считаются разными.
Цитата Сообщение от DiabloRossi Посмотреть сообщение
как реализовано внутри программы?
Кто подскажет?
какой программы?
1
2 / 2 / 1
Регистрация: 09.02.2011
Сообщений: 49
13.03.2011, 12:26  [ТС]
Да вообще любой.)
Я был бы рад, если бы кто-нить самую простую прогу сбацал и на ее примере объяснил)
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
13.03.2011, 12:39
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
#include <iostream>
#include <cstring>
#include <cstdlib>
 
#define PRINT(A) std::cout << #A << ": " << (A) << std::endl
 
void swap(int&, int&);
void swap(char*, char*);
 
int main()
{
    int ia = 5, ib = 6;
    char ca[] = "foo", cb[] = "bar";
 
    std::cout << "Before swapping:" << std::endl;
    PRINT(ia);
    PRINT(ib);
    PRINT(ca);
    PRINT(cb);
 
    swap(ia, ib);
    swap(ca, cb);
    
    std::cout << "After swapping:" << std::endl;
    PRINT(ia);
    PRINT(ib);
    PRINT(ca);
    PRINT(cb);
    
    return 0;
}
 
void swap(int& a, int& b)
{
    int t = a;
    a = b;
    b = t;
}
 
void swap(char* a, char* b)
{
    static char buf[BUFSIZ];
    
    strcpy(buf, a);
    strcpy(a, b);
    strcpy(b, buf);
}
Создаем две функции (перегруженные) swap, которые обменивают значения переменных одинаковых типов (первая функция работает с числовым типом, вторая - со строковым).
2
2 / 2 / 1
Регистрация: 09.02.2011
Сообщений: 49
13.03.2011, 12:54  [ТС]
Так, отлично)
а можно еще на примере какого-нибудь отладчика посмотреть, где компилятор успевает смотреть список формальных параметров?
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
13.03.2011, 13:18
Цитата Сообщение от DiabloRossi Посмотреть сообщение
а можно еще на примере какого-нибудь отладчика посмотреть, где компилятор успевает смотреть список формальных параметров?
вот это вряд ли
0
2 / 2 / 1
Регистрация: 09.02.2011
Сообщений: 49
13.03.2011, 13:25  [ТС]
ну или хотя бы чисто теоретически объяснить)
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
13.03.2011, 13:37
Здесь есть немного теории
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
13.03.2011, 13:44
Лучший ответ Сообщение было отмечено как решение

Решение

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
int f()
{
  return 0;
}
 
int f(int a)
{
  return 1;
}
 
int f(int a, int b)
{
  return 2;
}
 
int f(double a)
{
  return 3;
}
 
int f(double a, int b)
{
  return 4;
}
 
int f(double a, double* b)
{
  return 5;
}
 
int main()
{
  
}
Bash
1
2
g++ -O0 5.cpp 
nm ./a.out
Bash
1
2
3
4
5
6
7
8
...
080484b2 T _Z1fd
080484e4 T _Z1fdPd
080484cb T _Z1fdi
0804849e T _Z1fi
080484a8 T _Z1fii
08048494 T _Z1fv
...
каждую перегруженную функцию компилятор декорирует в соответствии с ее параметрами, а потом выполняет подстановку
думаю не сложно соорентироваться, что откуда
4
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
13.03.2011, 20:03
alex_x_x, как в vs2010 посмотреть как потом перегруженные функции именуются?
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
14.03.2011, 07:22
LeX BB, dumpbin, входящий в toolы студии, насчет параметров не помню
0
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
14.03.2011, 14:02
Цитата Сообщение от alex_x_x Посмотреть сообщение
dumpbin
у меня русская версия
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
14.03.2011, 14:57
Цитата Сообщение от LeX BB Посмотреть сообщение
у меня русская версия
Я думаю, название утилиты от этого не изменится

Ищи папку bin в папке, где установлена студия (по умолчанию C:\Program Files\Microsoft Visual Studio [НОМЕР ВЕРСИИ]\VC\bin), там ищи эту утилиту.
0
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
14.03.2011, 15:07
Nameless One, не поделишься библиотечкой mspdb100.dll?
0
14.03.2011, 15:10

Не по теме:

LeX BB, увы...

0
14.03.2011, 15:11

Не по теме:

эх...без нее не запускается

0
0 / 0 / 0
Регистрация: 14.03.2011
Сообщений: 11
14.03.2011, 17:40
Цитата Сообщение от Nameless One Посмотреть сообщение
Здесь есть немного теории
Спс!Благодаря єтому пояснению разобрался..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.03.2011, 17:40
Помогаю со студенческими работами здесь

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

Перегрузка функций
С помощью механизма перегрузки функций организовать ввод с клавиатуры и сцепление: 1) одной строки и символа перевода на другую строку; ...

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

Перегрузка функций
Здравствуйте уважаемые програмисты:) У меня вот такое задание: В классе необходимо перегрузить нижеследующие операции, при этом две...

Перегрузка функций
Как вызвать перегрузку функции, если они отличаются только реализацией? Например: int function(int a, int b) { return a + b; } ...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью 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 ). Также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru