Как реализовать перегрузку и переопределение функций в C ++?



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

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

В этой статье будут рассмотрены следующие указатели.





Продолжаем читать статью о перегрузке и переопределении функций в C ++

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



В C ++ разрешены функции с одинаковыми именами, но с разными параметрами, которые называются Перегрузка функций . Это также называется полиморфизмом времени компиляции.

Например:

sum (int a, float b) sum (int a, int b) sum (int a, int b, int c)

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



Если возвращаемые типы функций различаются, это считается недействительным.

Продолжаем читать статью о перегрузке и переопределении функций в C ++

Пример кода для функции перегрузки

include using namespace std class Addition {public: int add (int n1, int n2) {return n1 + n2} int add (int n1, int n2, int n3) {return n1 + n2}} int main (void) {Добавление cout< 

Вывод

Вывод - перегрузка и переопределение функций в C ++ - Edureka

Объяснение

В приведенной выше программе у нас есть две функции в классе сложения. Оба названы доп. Один имеет 2 параметра, а другой - 3 параметра.

В функции main мы создаем объект добавления класса, называемый a. Мы вызываем функции добавления с 2 и 3 параметрами соответственно, и вызываются функции add, которые выполняют сложение.

Так происходит перегрузка функции.

Продолжаем читать статью о перегрузке и переопределении функций в C ++

Переопределение функции

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

Пример кода для переопределения функции

#include с использованием пространства имен std class BaseClass {public: void disp () {cout<<'Parent Class Function' } } class DerivedClass: public BaseClass{ public: void disp() { cout<<'Child Class Function' } } int main() { DerivedClass obj = DerivedClass() obj.disp() return 0 } 

Вывод:

Пояснение:

В приведенной выше программе мы показываем базовую функцию с тем же именем в производном и базовом классах. Здесь объект создается из производного класса, поэтому, когда мы вызываем display, отображается только объект дочернего класса.

Продолжаем читать статью о перегрузке и переопределении функций в C ++

Порядок выполнения замены

Рассмотрим код:

#include с использованием пространства имен std class BaseClass {public: void disp () {cout<<'Function of Parent Class' } } class DerivedClass: public BaseClass{ public: void disp() { cout<<'Function of Child Class' } } int main() { BaseClass obj = DerivedClass() obj.disp() return 0 } 

Вывод:

Пояснение:

В приведенной выше программе мы показываем базовую функцию с одинаковым именем в производном и базовом классах. Здесь единственное отличие от предыдущей программы в том, что. Создаем объект дочернего класса. Объект дочернего класса получает ссылку на базовый класс. Это также можно сделать с помощью другого метода,

Синтаксис

Имя_ родительского_класса :: функция ()

В приведенном выше примере мы используем его как

BaseClass :: disp ()

Это еще один способ переопределения.

Перегрузка функций VS Переопределение функций

рекурсия Фибоначчи c ++
Функциональная перегрузка Переопределение функции
Объем такой жеСфера применения разная
Подписи должны отличаться (например, параметр)Подписи должны быть такими же
Возможное количество функций перегрузкиВозможна только одна замещающая функция
Может происходить без наследованияВ основном это происходит по наследству

На этом мы подошли к концу статьи о «Перегрузке и переопределении функций в C ++». Если вы хотите узнать больше, ознакомьтесь с от Edureka, надежной компании онлайн-обучения. Курс обучения и сертификации по Java J2EE и SOA от Edureka разработан, чтобы обучить вас базовым и продвинутым концепциям Java, а также различным средам Java, таким как Hibernate и Spring.

Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев в этом блоге, и мы свяжемся с вами как можно скорее.