O que são interfaces em C ++

O que são interfaces em C ++
Interfaces, comumente conhecidas como classes abstratas são apenas uma fonte de descrição do comportamento da classe sem ter se comprometido com a implementação da classe. Não há um conceito interno de interfaces na programação C ++. Para começar a criar uma interface, devemos primeiro estabelecer uma classe abstrata apenas com funções virtuais puras.

As interfaces em C ++ são aplicadas usando classes abstratas. Por outro lado, uma classe é chamada de classe abstrata se pelo menos uma função dentro de uma classe for declarada como uma função virtual pura.

Qual é a função virtual pura

O Função virtual pura significa que os usuários simplesmente declaram a função e não sua definição. Método/função A substituição é usada para implementar métodos virtuais puros na classe derivada. Uma função é considerada pura virtual se for descrita dentro da classe, conforme dado abaixo:

Aqui está a sintaxe de um Função virtual pura da sala de aula.

sala de aula
público:
// Função virtual pura
Virtual duplo getarea () = 0;
privado:
comprimento duplo; // comprimento de uma sala
largura dupla; // largura de uma sala
;

O que é aula abstrata

Uma classe que foi criada especificamente com o objetivo de servir como uma classe base é nomeada Classe abstrata. Pelo menos uma função virtual pura deve estar presente na classe abstrata. Pode incluir variáveis ​​e funções padrão. As classes derivadas que a classe abstrata deve implementar uma função virtual pura da classe base, ou então eles se tornarão abstratos.

Considere o exemplo a seguir, no qual a classe pai fornece uma interface a uma classe base para que a classe base aplique uma função virtual pura chamada getarea (). Duas classes diferentes usam o mesmo getarea () função, mas a saída para ambos os casos será diferente.

#incluir
usando namespace std;
forma de classe

público:
virtual int getarea () = 0;
Void SetWidth (int wth)

largura = wth;

Void SetLength (int lTH)

comprimento = lth;

protegido:
int largura;
comprimento int;
;
Retângulo de classe: forma pública

público: int getarea ()

retornar (largura *comprimento);

;
Triângulo de classe: forma pública

público: int getarea ()

retornar (largura *comprimento) / 2;

;
int main (vazio)

Retângulo r;
Triângulo T;
R.setWidth (9);
R.SetLength (5);
cout << "Area of Rectangle: " << R.getArea() << endl;
T.setWidth (9);
T.SetLength (5);
cout << "Area of Triangle: " << T.getArea() << endl;
retornar 0;

Saída

Importância das interfaces

Qualquer classe derivada de uma classe abstrata pura (interface) deve sempre implementar cada um dos métodos da classe base, i i.e., Interface. Os ponteiros da interface podem ser transmitidos para as funções e as classes, permitindo que chamamos as funções da classe derivada de lá em si.

Quais são as regras para usar interfaces

Existem seguintes regras que os usuários devem seguir para o uso de interfaces no C ++:

  • Declare apenas funções virtuais puras.
  • Atribuído apenas 0 a funções virtuais puras.
  • Não crie a interface das classes.
  • Usando uma referência a uma classe abstrata base, podemos criar um ponteiro para uma instância da classe derivada.

No código a seguir, uma interface Linuxhint, Como uma classe abstrata, foi criada usando um método virtual puro, bem como sua função é aplicada na classe infantil, e chamamos o returnString () Método na função principal seguindo as regras da interface.

#incluir
#incluir
#incluir
usando namespace std;
Classe linuxhint

público:
Virtual String returnString () = 0;
;
Criança Criança: Public Linuxhint

público:
String ReturnString ()

retornar "Hello Linuxhint";

;
int main ()

criança child_object;
linuxhint* pntr;
pntr = & child_object;
cout retornar 0;

Saída

Conclusão

Interfaces são classes abstratas que descrevem o comportamento da classe que precisa implementar a classe necessária em c++. As diretrizes acima mencionadas são cruciais para um iniciante melhorar suas habilidades de programação C ++ trabalhando com as interfaces. Você encontrará alguns exemplos também que ajudarão você a aprender a implementação de interfaces em C++.