No casting implícito, sem perda de dados, a linguagem C++ não faz nenhum tipo de validação e
                a conversão é feita automaticamente de uma tipo de dado de menor capacidade de armazenamento para 
                uma tipo de dado maior capacidade.
            
            Sintaxe
            long int < int
int < short
short < char
            Onde
            <: Sentido da conversão. Menor tamanho para o de maior tamanho
            Exemplo 1
            
#include <iostream>
using namespace std;
int main()
{
    int a;
    short b= 256;
    a = b;
    cout << a << endl;
    cout << b << endl;
    return 0;
}
            
                No casting implícito, com perda de dados, a linguagem C++ faz uma validação interna e  retornando uma tipo 
                de dado de menor capacidade de armazenamento para uma tipo de dado maior capacidade.
            
            Sintaxe
            long int > int
int > short
short > char
            Onde
            >  : Sentido da conversão. Maior tamanho para o de menor tamanho
            Exemplo 2
            
#include <iostream>
using namespace std;
int main()
{
    int vl_int = 256;
    char vl_char = vl_int;
    cout << +vl_char << endl;
    return 0;
}
            Saída
            
0
            
                Como o tipo de dado char armazena apenas 1 byte, na conversão acima, apenas o último byte do inteiro foi atribuído
                a variável vl_char resultando em um valor 0. O valor 256 é armazenado como 0x100 em memória.
            
            
                O símbolo + foi utilizado para informar que o valor vl_char deve ser exibido como valor numérico e não caracter.