Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 44, средняя оценка - 4.75
грязный
31 / 31 / 0
Регистрация: 15.11.2008
Сообщений: 205
#1

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

08.09.2009, 09:55. Просмотров 6179. Ответов 9
Метки нет (Все метки)

Что такое перезагрузка функции в с++?
Для чего она нужна? Есть случаи, когда без нее никак?
Приведите пример перезагрузки функции?
Тут есть перезагрузка?

C++
1
2
3
4
5
6
7
8
static int Square(int var)
    {
      return (var * var);
    }
    static long Square(long var)
    {
      return (var * var);
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.09.2009, 09:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перегрузка функции (C++):

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

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

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

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

Перегрузка функции в С++ - C++
1. Определить функцию Search(), которая позволяет найти самое длинное слово в предложении. Перегрузить функцию Search() для нахождения...

Перегрузка функции - C++
Написать перегрузку функции: 1. а) Для массива целых чисел находит середнее арифметическое б) Для строки находит количество букв,...

9
Paulie
Айхрень...
306 / 174 / 4
Регистрация: 02.06.2009
Сообщений: 1,078
08.09.2009, 10:03 #2
Ну для начала - перегрузка функции. По этому запросу поисковая система выдаст много чего интересного
0
Padonok
14 / 14 / 1
Регистрация: 01.02.2009
Сообщений: 23
08.09.2009, 10:23 #3
Правильней будет перегрузка функции...
Несколько различных функций с одинаковым именем называется перегрузка функций. Такие функции должны отличатся друг от друга списками параметров: типом или количеством параметров либо и тем, и другим одновременно.

C++
1
2
3
int myFunction (int,int);
int myFunction (long,long);
int myFunction (long);
Типы возвращаемых значений перегруженных функций могут быть одинаковыми или разными.
2
Sergei
1440 / 707 / 41
Регистрация: 22.04.2008
Сообщений: 1,610
08.09.2009, 10:23 #4
В твоем примере есть перегрузка функции.
Перегрузка функции это когда объявляются несколько функции с одним и тем же именем
но количество аргументов и их типы могут быть различны также и возвращаемое значение может быть различного типа.
Это позволяет удобному написанию программ. Так как нет необходимости давать различным функциям делающим примерно одно и тоже, но с аргументами различных типов и их количество,
разные имена и запоминать их. Перегрузка функции особенно важна в ООП на основе перегрузки функции реализуется полиморфизм.
1
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
08.09.2009, 10:40 #5
Цитата Сообщение от Sergei Посмотреть сообщение
озвращаемое значение может быть различного типа.
возвращаемое значение не учитывается в перегрузке функций.
Цитата Сообщение от Sergei Посмотреть сообщение
Перегрузка функции особенно важна в ООП на основе перегрузки функции реализуется полиморфизм.
ты написал бред. покажи мне полиморфизм, который достигается благодаря перегрузке функции.
0
rangerx
1937 / 1546 / 141
Регистрация: 31.05.2009
Сообщений: 2,913
08.09.2009, 13:45 #6
ты написал бред. покажи мне полиморфизм, который достигается благодаря перегрузке функции.
Множество реализаций через один интерфейс. Что это, если не полиморфизм?
0
M128K145
Эксперт С++
8306 / 3526 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
08.09.2009, 15:11 #7
Г. Шилдт "Самоучитель С++" 3-е издание, стр 13
Код
Полиморфизм может применяться также и к операторам. Фактически во
всех языках программирования ограниченно применяется полиморфизм,
например, в арифметических операторах. Так, в С, символ + используется
для складывания целых, длинных целых, символьных переменных и чисел с
плавающей точкой. В этом случае компилятор автоматически определяет,
какой тип арифметики требуется. В C++ вы можете применить эту концеп-
цию и к другим, заданным вами, типам данных. [U]Такой тип полиморфизма
называется перегрузкой операторов[/U] (operator overloading).
2
TGrey[WoLf]
39 / 39 / 1
Регистрация: 14.09.2008
Сообщений: 683
08.09.2009, 15:16 #8
В объектно-ориентированных языках класс является типом данных. Полиморфизм реализуется с помощью наследования классов и виртуальных функций. Класс-потомок наследует сигнатуры методов класса-родителя, но реализация этих методов может быть другой, соответствующей специфике класса-потомка.
Полиморфизм Это вроде уже относится к виртуальным функциям, а это вроде, как не совсем перегрузка. Что в базовом классе, что в наследнике функция будет выглядеть одинаково хоть внутри код будет разный.
А смысл перегрузки в том, чтобы одной функции задавать различное число параметров.
Если и использовать перегрузку в классе, то она будет работать точно так же, как и без класса.
0
zim22
depict1
276 / 141 / 2
Регистрация: 11.07.2009
Сообщений: 606
08.09.2009, 18:46 #9
Полиморфизм - это концепция теории типов, согласно которой имена (например, объявления переменных) могут обозначать объекты разных классов, имеющих общий суперкласс. Следовательно, объекты, обозначаемые полиморфным именем, могут по-разному выполнять общий набор операций.
"Объектно-ориентированный анализ и проектирование с примерами приложений" (Гради Буч).
0
mustardandrew
Человек
96 / 80 / 3
Регистрация: 16.06.2009
Сообщений: 229
08.09.2009, 20:19 #10
Можно использовать шаблоны вместо перегрузки

C++
1
2
3
4
template<class T>
T& max(T& a, T& b){
  return (a>b)?a:b;
}
пример использования
C++
1
2
3
4
5
int a=10, b=20;
int c=max(a,b);
 
double a1=1.3, b1=1.09;
double c1=max(a1, b1)
0
08.09.2009, 20:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.09.2009, 20:19
Привет! Вот еще темы с ответами:

Перегрузка функции - C++
Помогите плз сделать лабораторную по программированию Задание такое: Класс «матрица». Матрица имеет размер 3х3 и содержит...

Перегрузка функции С++ - C++
Создайте перегруженную функцию decr(), которая от аргумента вычитает 1, где аргументы целый (int), вещественный (double) тип, символьный...

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

Перегрузка функции - C++
Люди-программеры, помогите ,пожалуйста, с решением задачи:wall: Создайте функцию promt() для выдачи подсказки пользователю и ожидания...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.