Please enable JavaScript.
Coggle requires JavaScript to display documents.
Polimorfismo em C++ - Coggle Diagram
Polimorfismo em C++
Overloading ( sobrecarga de operadores)
Permite a redefinição de operadores padrão para que tenham um comportamento específico em classes feitas pelo usuário
&& I I :
= op=
== =! < <= >= >
& I ^ ~ << >>
/ %
() []
Como ocorre?
Um operador sempre sompre overload quando está numa classe, logo o escopo dele é simplesmente estendido .
Apesar disso, as características do operador permanecem as mesmas
Regras
Não dá para redefinir os operadores para os tipos fundamentais
Não dá para mudar a quantidade de operandos que o operador aceita
Não tem como criar novos operadores
A precedência e a ordem de agrupamento dos operadores de mesma precedência permanece a mesma
A maioria dos operadores já sofrem a sobrecarga por conta dos tipos fundamentais .
PS: alguns operadores não podem sofrer sobrecarga
casting operator ( conversão de tipos); size of ; operadores condicionais e operadores que controlam o acesso de membro e a resolução.
Esses operadores oui possuem um significado fixo nas classes em que estão definidos ou sobrecarregá-lo faz nenhum sentido.
Exemplos de código em
https://www.geeksforgeeks.org/operator-overloading-cpp/
Conversões de Tipo para Classes ( implicita / explicita)
Construtor Conversos
Função conversora
Exemplo
int test(bool) { return 0; }
int test(const std::string&) { return 1; }
int i = test("test"); // = 0
Friend Functions e Classes
Fazer uma friend function/class concede acesso a membros privados dessa friend class.
Link com exemplos de código
https://t4tutorials.com/friend-function-and-friend-classes-in-c-oop-with-examples/
Altos usos de técnicas de Friend aumenta as chances de encapsulamento de dados. Permitir funções internas para manipular dados internos pode ocasionar inconsistência
Principalmente se uma classe é modificada ou extendida posteriormente