Уроки C++ с нуля / Урок #16 - Перегрузка функций

preview_player
Показать описание
В этом уроке мы научимся перегружать функции. Я расскажу зачем нужна перегрузка функций, а также как ее можно реализовать на языке программирования C++.

✔ -------------

- Уроки от #GoshaDudar 👨🏼‍💻
- Все уроки по хештегу #GoshaCpp
Рекомендации по теме
Комментарии
Автор

Не хватило в видео того, что перегруженная функция - это не только функция, которая имеет разное кол-во параметров, но и типы параметров могут различаться

kostarev
Автор

Большое вам СПАСИБО!
Несколько раз пытался изучить С++ по книгам и засыпал. Была в голове полная каша.
По вашим роликам все понятно. Дальше только список всех встроенных функций, команд, но это уже дело техники.
Главное понять что, как работает, а где и в каком месте что принять - понятно по вашим видео. Дальше только иметь справочник на руках и из него просто брать наиболее подходящее ну или самому придумывать части кода, если лень брать из справочников (служебных толмутов по языку С++).

lcqbnmq
Автор

Крайне странно, что у прямоугольника все стороны - разные

wgekgvf
Автор

#include <iostream>

using namespace std;

float perimetr(float x, float y, float z);
float perimetr(float x, float y, float z, float d);


int main()
{
cout << perimetr(15.23, 23.3, 12.02, 23.2)<<endl;
cout << perimetr(15.23, 23.3, 12.02);
cin.get();
return 0;
}
float perimetr(float x, float y, float z)
{
return x+y+z;
}
float perimetr(float x, float y, float z, float d)
{
return x+y+z+d;
}

JokerKonor
Автор

В прототипах функций ведь можно не указывать имена переменных, достаточно типов.

justfullscale
Автор

еще хочется отметить что так же можно с помощью перегрузки возвращать разные типы данных

float perimeter(float a, float b, float c);
int perimeter(int a, int b, int c);
int main()
{
cout << "Perimetr triangle = " << perimeter(4.5f, 4.0f, 4.0f) << endl;
cout << "Perimetr rectangle = " << perimeter(4, 4, 4) << endl;
return 0;
}
float perimeter(float a, float b, float c, float d)
{
return a + b + c + d;
}
int perimeter(int a, int b, int c)
{
return a + b + c;
}

zvslvfg
Автор

я конечно не профессор математики, но разве периметр не рассчитывается по формуле 2(a+b)?

vondzyg
Автор

Как хорошо, что я учился программировать не по твоим видео! Да и геометрию, к счастью, не ты мне преподавал! )

sandroidtv
Автор

а можно создать функцию с 4 параметрами, но передать ей только 3?

komratan
Автор

Всем хай, я снова тут, короче, у кого ВС, у вас всё не как у людей скорее всего будет работать...Я почекал блог майков и как они советуют юзать перегрузку, всё довольна таки схоже, за маленьким исключением того, что обработчик и на 3 операнда тоже придётся писать, а то у вас будет ошибка линцирования функции с тремя значениями, как всегда рад быть полезным, удачки вам ^, ^

#include <iostream>

using namespace std;

float perimeter(float a, float b, float c);
float perimeter(float a, float b, float c, float d);
int main()
{
cout << "Perimetr triangle = " << perimeter(12, 13, 5) << endl;
cout << "Perimetr rectangle = " << perimeter(4, 23, 11, 12) << endl;
system("pause");
return 0;
}
float perimeter(float a, float b, float c, float d)
{
return a + b + c + d;
}
float perimeter(float a, float b, float c)
{
return a + b + c;
}
Тоесть что-то подобное у вас скомпилится и будет иметь право на жизнь.

SalinovStream
Автор

а еще говорят c# легче c++
так по мне c++ легче

NFOR
Автор

У меня прога выдаёт хрень такого вида:
Perimetr is 011C1406

eligutman
Автор

очень нехорошая возможность. Напрочь запутаешься, если программа будет большой

eqssrkt
Автор

тема не раскрыта, что такое перегрузка так и не понятно

happyman
Автор

лишная ерунда едно и тоже име только запутавает

petkopopov