English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
El polimorfismo es una característica clave de la programación orientada a objetos, que tiene múltiples formas. En C ++se divide en polimorfismo en tiempo de compilación y polimorfismo en tiempo de ejecución.
Un ejemplo de polimorfismo en tiempo de compilación es la sobrecarga de funciones o operadores. La sobrecarga de funciones es un ejemplo de polimorfismo en tiempo de ejecución.
Miembros protegidos en la clase derivada ++Un ejemplo de polimorfismo utilizando sobrecarga de funciones en
#include <iostream> using namespace std; class Example { public : void func(int a) { cout << "\nEl valor de a: " << a; } void func(int a, int b) { cout << "\nEl valor de a: " << a; cout << "\nEl valor de b: " << b; } void func(char c) { cout << "\nEl valor de c: " << c; } }; int main() { Ejemplo obj; cout << "\nUn valor entero"; obj.func(5); cout << "\nUn valor de carácter"; obj.func('A'); cout << "\nDos valores enteros"; obj.func(7, 2); return 0; }
Resultados de salida
La salida del programa anterior es como sigue.
One int value The value of a: 5 One char value The value of c: A Two int values The value of a: 7 The value of b: 2
Ahora, vamos a entender el programa anterior.
func()
Los miembros de la clase Example han sido sobrecargados.func()
Se puede elegir según sea necesario una función con diferentes parámetros.3proporciona el código siguiente.
class Example { public : void func(int a) { cout << "\nEl valor de a: " << a; } void func(int a, int b) { cout << "\nEl valor de a: " << a; cout << "\nEl valor de b: " << b; } void func(char c) { cout << "\nEl valor de c: " << c; } };
En la funciónmain()
crea el objeto de la clase Example obj.func()
Se puede llamar a la función con diferentes parámetros para demostrar la sobrecarga de funciones. A continuación se muestra el fragmento de código correspondiente.
int main() { Ejemplo obj; cout << "\nUn valor entero"; obj.func(5); cout << "\nUn valor de carácter"; obj.func('A'); cout << "\nDos valores enteros"; obj.func(7, 2); return 0; }