Retornar tipo de reinterpret_cast
Não há tipo de retorno para isso. O tipo de ponteiro é apenas convertido.
Parâmetros do reinterpret_cast
A variável ponteiro de referência é o único argumento que aceita.
Uso de reinterpret_cast
Vamos falar mais sobre o C ++ Interpret_cast.
Exemplo 1:
Neste exemplo, mostraremos como o reinterpret_cast funciona em seu nível mais fundamental.
#incluir
usando namespace std;
int main ()
int* a = new int (90);
char* chr = reinterpret_cast(a);
cout << *a << endl;
cout << *chr << endl;
cout << a << endl;
cout << chr << endl;
retornar 0;
Iniciamos o código integrando o arquivo de cabeçalho . O espaço para nome padrão é usado na próxima etapa. Definimos a função principal (). Dentro da função, construímos um ponteiro. Junto com isso, inicializamos uma variável e fornecemos um valor deste ponteiro.
Em seguida, declaramos um ponteiro do tipo de dados do personagem. Usamos o comando reinterpret_cast. Aqui, passamos o ponteiro do personagem. Além disso, utilizamos a declaração cout primeiro para imprimir o ponteiro variável, bem como o ponteiro do personagem. Em seguida, empregamos a declaração cout para exibir os valores de ambos os ponteiros. No final, aplicamos o comando de retorno 0.
Exemplo 2:
Este código demonstra como utilizar a estrutura como uma ilustração.
#incluir
usando namespace std;
estruturar mystruct
int i;
int j;
char m;
bool n;
;
int main ()
mystruct e;
e.i = 25;
e.j = 40;
e.m = 'u';
e.n = true;
int* ptr = reinterpret_cast(& e);
cout << sizeof (e) << endl;
cout << *ptr << endl;
ptr ++;
cout << *ptr << endl;
ptr ++;
char* chr = reinterpret_cast(ptr);
cout << *chr << endl;
Chr ++;
bool* b = reinterpret_cast(Chr);
cout << *b << endl;
cout << *(reinterpret_cast(Chr));
retornar 0;
A biblioteca e o espaço para nome padrão são usados no início do código. Criamos uma estrutura denominada mystruct. Dentro dessa estrutura, inicializamos duas variáveis chamadas i e j. Em seguida, criamos duas outras variáveis das quais a primeira variável possui um tipo de dados de caracteres e a segunda variável possui um tipo de dados booleano. Na etapa posterior, usamos a função principal (). Dentro desta função, chamamos de variável "e" da estrutura de "mystruct".
Em seguida, atribuímos alguns valores aleatórios à variável associada à estrutura. As duas primeiras variáveis contêm os valores inteiros. A terceira variável contém o personagem. A última variável contém o valor booleano. Durante o elenco, o tipo de dados da variável é o mesmo que da variável real. Agora, convertemos o ponteiro de "e" para o ponteiro da variável com o tipo de dados inteiro. Construímos o ponteiro e definimos seu valor igual ao reinterpret_cast. Então, utilizamos a declaração cout. Aumentamos o valor do ponteiro "PTR" por 1. Agora, imprimimos o valor do próximo ponteiro, por isso empregamos a declaração de cout novamente.
Além disso, o valor deste ponteiro é aumentado por 1. Aplicamos o elenco ao ponteiro do personagem "Chr" pelo uso de reinterpret_cast. Agora, basta mostrar o valor do ponteiro do personagem com a ajuda da declaração Cout. Como *chr já corresponde a um valor booleano, uma transformação de tipo de dados semelhante é empregada para obter o valor. Assim, usamos o tipo de dados *B, que é um bool. Utilizamos o reinterpret_cast para o ponteiro booleano. Imprimos o valor dessa variável booleana aplicando a instrução Cout. O reinterpret_cast é empregado para exibir o valor apontado pelo *chr ch. Para encerrar o código, use a instrução Return 0.
Exemplo 3:
O reinterpretação do ponteiro é demonstrado neste caso.
#incluir
usando namespace std;
classe u
público:
void fun_x ()
cout << " Present in class U\n";
;
classe V
público:
void fun_b ()
cout << " Present in class V\n";
;
int main ()
V* i = new V ();
V* new_x = reinterpret_cast(eu);
new_x-> fun_x ();
retornar 0;
Primeiro de tudo, apresentamos o módulo e o espaço de nome padrão. Então, nós construímos uma classe chamada você. Definimos uma função desta classe publicamente. Utilizamos o comando cout dentro desta função. Então, fazemos uma nova classe chamada V. Depois de chamar a função, tornamos público. Aqui, a declaração cout é usada. Iniciamos a codificação dentro do método principal (). Primeiro, construímos o objeto "eu" da classe V. Transformamos o ponteiro para o objeto e damos a referência da classe V à classe U, por isso utilizamos o reinterpret_cast. Em seguida, recuperamos a função "fun_x" da classe U. Em seguida, aplique o comando retornar 0 para encerrar o programa.
Conclusão
Discutimos o C ++ reinterpret_cast neste artigo. Há um operador de fundição chamado reinterpret_cast em c++. Não importa se as classes estão conectadas ou não, é utilizado para transformar um ponteiro de um tipo de dados em outro ponteiro. Avaliamos três exemplos e, em um deles, podemos ver como usar o reinterpret_cast opera em sua forma mais básica. No segundo exemplo, fazemos uso de uma estrutura e depois usamos o reinterpret_cast para mudar seu ponteiro para outro ponteiro. A última ilustração mostra um ponteiro reinterprete.