Please enable JavaScript.
Coggle requires JavaScript to display documents.
Type conversions and Overloading - Coggle Diagram
Type conversions and Overloading
Overloading
Operadores que podem ser sobrecarregados
Operadores Aritméticos
Operadores Relacionais
Operadores Lógicos
Operadores de Atribuição
Chamada de função
Operadores Bitwise
Alguns outros operadores, como: [], ->, &,
,
Uma sobrecarga acontece quando podemos ter duas ou mais definições a partir de uma mesma expressão e/ou estrutura. Exemplo: Ao realizar uma divisão a/b, caso ambos sejam inteiros o resultado será um número inteiro, caso contrário, teremos um resultado com ponto flutuante
A criação de overloads também podem ser feitas através dos operators dentro das classes
Para isso é necessário a criação de uma função no seguinte formato: type operator op(paramêtros){...}
A chamada dos operadores devem ser realizadas a partir de objetos dessa mesma classe
Operadores que não podem ser sobrecarregados
sizeof
.
::
.*
?:
Chamada de operadores, exemplo (op: <): x < y // x.operator<(y)
Operadores podem ser globais quando seus argumentos são binários (dois argumentos). Assim a chamada do operador não depende de um objeto para chamar o operador. A chamada de um operador global acontece da seguinte maneira: operador+(x, y)
Friend Functions
Friend é uma declaração que dá privilegios de acesso para os membros da classe
Ao declarar uma função friend func_friend dentro da classe Carro, ainda que essa função seja pública a função possui acesso para os atributos privados da classe
Type Conversion
Existem dois tipos de conversão de tipos, a conversão implícita e explícita
Classe x(300.5); x += (Classe)100; (Explícita) x -= 200.35 (Implícita)
Conversão a partir de construtctors e funções
Para utilizar a conversão por constructors ou funções você deve realizar conversões explícitas
Explicit
Garante que as conversões devem ocorrer de forma explícita, garantindo que não haja ambiguidade, além de evitar que ocorram conversões indesejadas