¿Qué son las interfaces en C ++?

¿Qué son las interfaces en C ++?
Las interfaces, comúnmente conocidas como clases abstractas son solo una fuente de describir el comportamiento de la clase sin haberse comprometido con la implementación de la clase. No hay un concepto incorporado de interfaces en la programación de C ++. Para comenzar a crear una interfaz, primero debemos establecer una clase abstracta solo con funciones virtuales puras.

Las interfaces en C ++ se aplican utilizando clases abstractas. Por otro lado, una clase se llama clase abstracta si al menos una función dentro de una clase se declara como una función virtual pura.

¿Cuál es la función virtual pura?

El Función virtual pura significa que los usuarios simplemente declaran la función y no su definición. El método/anulación de función se utiliza para implementar métodos virtuales puros en la clase derivada. Una función se considera pura virtual si se describe dentro de la clase como se da a continuación:

Aquí está la sintaxis de un Función virtual pura de la clase.

aula
público:
// función virtual pura
Virtual Double getArea () = 0;
privado:
doble longitud; // Longitud de una habitación
Doble ancho; // ancho de una habitación
;

¿Qué es la clase abstracta?

Una clase que fue creada específicamente con el propósito de servir como clase base se llama clase abstracta. Al menos una función virtual pura debe estar presente en la clase abstracta. Puede incluir variables y funciones estándar. Las clases derivadas que tiene la clase abstracta debe implementar una función virtual pura de la clase base, o de lo contrario se volverán abstractos.

Considere el siguiente ejemplo, en el que la clase principal ofrece una interfaz a una clase base para que la clase base se llame la función virtual pura llamada getArea (). Dos clases diferentes usan lo mismo getArea () función, pero la salida para ambos casos será diferente.

#incluir
usando el espacio de nombres STD;
forma de clase

público:
virtual int getArea () = 0;
Void setwidth (int wth)

ancho = WTH;

void setLength (int lth)

longitud = lth;

protegido:
int ancho;
int longitud;
;
Rectángulo de clase: forma pública

Público: int getArea ()

return (ancho *longitud);

;
Triángulo de clase: forma pública

Público: int getArea ()

return (ancho *longitud) / 2;

;
int main (nulo)

Rectángulo r;
Triángulo T;
Riñonal.setwidth (9);
Riñonal.setLength (5);
cout << "Area of Rectangle: " << R.getArea() << endl;
T.setwidth (9);
T.setLength (5);
cout << "Area of Triangle: " << T.getArea() << endl;
regresar 0;

Producción

Importancia de las interfaces

Cualquier clase derivada de una clase abstracta pura (interfaz) siempre debe implementar cada uno de los métodos de la clase base, i.mi., Interfaz. Los punteros de la interfaz podrían pasar a las funciones, así como a las clases, lo que nos permite llamar a las funciones de la clase derivada de allí en sí misma.

¿Cuáles son las reglas para usar interfaces?

Hay las siguientes reglas que los usuarios deben seguir para usar interfaces en C ++:

  • Solo declara funciones virtuales puras.
  • Asignado solo 0 a funciones virtuales puras.
  • No cree la interfaz de las clases.
  • Usando una referencia a una clase de resumen base, podemos crear un puntero a una instancia de la clase derivada.

En el siguiente código, una interfaz Linuxhint, Al igual que se ha creado una clase abstracta utilizando un método virtual puro, así como su función se aplica en la clase infantil, y llamamos el returnString () Método en la función principal siguiendo las reglas de la interfaz.

#incluir
#incluir
#incluir
usando el espacio de nombres STD;
clase Linuxhint

público:
virtual String returnString () = 0;
;
Niño de clase: Public Linuxhint

público:
string returnString ()

devolver "Hola Linuxhint";

;
int main ()

niño niño_object;
Linuxhint* pntr;
pntr = & child_object;
cout regresar 0;

Producción

Conclusión

Las interfaces son clases abstractas que describen el comportamiento de la clase que necesita implementar la clase requerida en C++. Las pautas mencionadas anteriormente son cruciales para que un principiante mejore sus habilidades de programación de C ++ trabajando con las interfaces. También encontrará algunos ejemplos que lo ayudarán a aprender la implementación de interfaces en C++.