C ++ es un en la naturaleza y cuenta con varias características. En esta sesión discutiremos cómo implementar la sobrecarga de funciones y la anulación de funciones en C ++.
Los siguientes consejos se cubrirán en este artículo,
Continuando con este artículo sobre sobrecarga y anulación de funciones en C ++
Sobrecarga de funciones
Las funciones que tienen el mismo nombre pero diferentes parámetros están permitidas en C ++ y se llaman Sobrecarga de funciones . También se denomina polimorfismo en tiempo de compilación.
Por ejemplo:
suma (int a, float b) suma (int a, int b) suma (int a, int b, int c)
Aquí hay tres funciones con el mismo nombre pero lo único que las diferencia es que los parámetros son diferentes en cada una. Entonces, dependiendo de los parámetros pasados, se llama a una función.
Si los tipos de retorno de las funciones son diferentes, se considera inválido.
Continuando con este artículo sobre sobrecarga y anulación de funciones en C ++
Código de muestra para función sobre carga
incluir usando el espacio de nombres 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) {Addition un cout<Salida
Explicación
En el programa anterior, tenemos dos funciones en la clase de suma. Ambos nombrados agregar. Uno tiene 2 parámetros y el otro tiene 3 parámetros.
En la función principal, creamos un objeto de adición de clase llamado a. Llamamos a las funciones sumar con 2 y 3 parámetros respectivamente y las funciones sumar se llaman y realizan sumas.
implementación de lista enlazada en cAsí es como se produce la sobrecarga de funciones.
Continuando con este artículo sobre sobrecarga y anulación de funciones en C ++
Anulación de función
Cuando una clase derivada tiene una función con el mismo nombre que una función de la clase base, se llama Anulación de función. Ambas funciones deben tener los mismos parámetros en ambas clases.
Código de muestra para anulación de funciones
#incluya el uso del espacio de nombres 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 }Salida:
diferencia entre interfaz y claseExplicación:
En el programa anterior, mostramos la función básica, con el mismo nombre en la clase derivada y base. Aquí el objeto se crea a partir de la clase derivada, por lo que cuando llamamos a mostrar, solo se muestra el objeto de la clase secundaria.
Continuando con este artículo sobre sobrecarga y anulación de funciones en C ++
Orden para realizar anulación
Considere el código:
#incluya el uso del espacio de nombres 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 }Salida:
Explicación:
En el programa anterior, mostramos la función básica, con el mismo nombre en la clase derivada y base. Aquí, la única diferencia con el programa anterior es esa. Creamos el objeto de la clase hija. El objeto de la clase secundaria recibe la referencia de la clase base. Esto también se puede hacer usando otro método,
Sintaxis
Parent_class_name :: function ()En el ejemplo anterior, lo usamos como,
BaseClass :: disp ()Esta es otra forma de anular.
Función de sobrecarga VS Función de anulación
Sobrecarga de funciones Anulación de función El alcance es el mismo El alcance es diferente Las firmas deben diferir (p. Ej., Parámetro) Las firmas deben ser las mismas Número de funciones de sobrecarga posibles Solo es posible una función principal Puede ocurrir sin herencia Se produce principalmente por herencia. Por lo tanto, hemos llegado al final de este artículo sobre 'Sobrecarga y anulación de funciones en C ++'. Si desea obtener más información, consulte el por Edureka, una empresa de aprendizaje en línea de confianza. El curso de capacitación y certificación Java J2EE y SOA de Edureka está diseñado para capacitarlo en conceptos básicos y avanzados de Java junto con varios marcos de Java como Hibernate y Spring.
Tienes una pregunta para nosotros? Menciónelo en la sección de comentarios de este blog y nos pondremos en contacto con usted lo antes posible.