O que são Interfaces em C++

O Que Sao Interfaces Em C



As interfaces, comumente conhecidas como classes abstratas, são apenas uma fonte de descrição do comportamento da classe sem se comprometer com a implementação da classe. Não há um conceito embutido 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.

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.

O que é a função virtual pura

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







Aqui está a sintaxe de um Função virtual pura da Sala de Aula.



aula Sala {
público :
// função virtual pura
virtual dobro Getaria ( ) = 0 ;

privado :
dobro comprimento ; // Comprimento de uma Sala
dobro Largura ; // Largura de uma Sala
} ;

O que é classe abstrata

Uma classe que foi criada especificamente com o propósito de servir como uma classe base é chamada de classe 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 possui devem implementar uma função virtual pura da classe base, ou então elas se tornarão abstratas.



Considere o exemplo a seguir, no qual a classe pai fornece uma interface para 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.





#include
usando namespace std ;
aula Forma
{
público :
virtual int Getaria ( ) = 0 ;
vazio definirLargura ( int com )
{
largura = com ;
}

vazio definirComprimento ( int )
{
comprimento = ;
}

protegido :
int largura ;
int comprimento ;
} ;

aula Retângulo : público Forma
{
público : int Getaria ( )
{
retornar ( largura * comprimento ) ;
}
} ;

aula Triângulo : público Forma
{
público : int Getaria ( )
{
retornar ( largura * comprimento ) / 2 ;
}
} ;

int principal ( vazio )
{
Retângulo R ;
Triângulo T ;
R. definirLargura ( 9 ) ;
R. definirComprimento ( 5 ) ;
cout << 'Área do retângulo: ' << R. Getaria ( ) << fim ;
T. definirLargura ( 9 ) ;
T. definirComprimento ( 5 ) ;
cout << 'Área do Triângulo: ' << T. Getaria ( ) << fim ;
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, ou seja, Interface. Os ponteiros de interface podem ser passados ​​para as funções, bem como para as classes, permitindo-nos chamar as funções da classe derivada a partir daí.

Quais são as regras para usar interfaces

Existem as seguintes regras que os usuários devem seguir para usar interfaces em 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 filha, e chamamos o returnString() método na função principal seguindo as regras da interface.

#include
#include
#include
usando namespace std ;

aula linuxhint
{
público :
virtual string returnString ( ) = 0 ;
} ;
aula criança : público linuxhint
{
público :
string returnString ( )
{
retornar 'Olá Linuxhint' ;
}
} ;
int principal ( )
{
filho filho_objeto ;
linuxhint * pntr ;
pntr = & filho_objeto ;
cout < returnString ( ) ;
retornar 0 ;
}

Saída

Conclusão

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