English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
O operador de conversão forçada é um operador especial que converte um tipo de dados em outro tipo de dados. O operador de conversão forçada é um operador unário, cuja prioridade é a mesma que a dos outros operadores unários.
A maioria dos C++ Os compiladores suportam a maioria dos operadores de conversão comuns:
(type) expression
Onde type é o tipo de dados resultante da conversão. A seguir está listado C++ Outros operadores de conversão forçada suportados:
const_cast<type> (expr): O operador const_cast é usado para modificar o const do tipo. / A propriedade volatile. Além da propriedade const ou volatile, o tipo de destino deve ser o mesmo que o tipo de origem. Este tipo de conversão é usado principalmente para operar a propriedade const do objeto transmitido, pode adicionar propriedade const, ou remove-la.
dynamic_cast<type> (expr): dynamic_cast executa conversões no tempo de execução, verificando a validade da conversão. Se a conversão não for executada, a conversão falha e a expressão expr é considerada null. dynamic_cast realiza conversões dinâmicas quando type deve ser um ponteiro de classe, uma referência de classe ou void*Se type for um tipo de ponteiro de classe, então expr também deve ser um ponteiro. Se type for uma referência, então expr também deve ser uma referência.
reinterpret_cast<type> (expr): O operador reinterpret_cast muda um tipo de ponteiro para outro tipo de ponteiro. Ele pode converter um ponteiro em um inteiro, ou um inteiro em um ponteiro.
static_cast<type> (expr): O operador static_cast realiza conversões não dinâmicas, sem verificação de segurança de classe no tempo de execução. Por exemplo, ele pode ser usado para converter um ponteiro de classe base em um ponteiro de classe derivada.
Todos os operadores de conversão forçada mencionados acima são usados ao trabalhar com classes e objetos. Agora, veja o exemplo a seguir para entender C++ Como usar um operador de conversão forçada simples. Copie e cole o seguinte C++ O programa está no arquivo test.cpp, compile e execute o programa.
#include <iostream> using namespace std; int main() { double a = 21.09399; float b = 10.20; int c; c = (int) a; cout << "Número1Linha-O valor de (int) a é: " << c << endl; c = (int) b; cout << "Número2Linha-O valor de (int) b é: " << c << endl; return 0; }
Quando o código acima for compilado e executado, ele produzirá o seguinte resultado:
Número1Linha-O valor de (int) b é:21 Número2Linha-O valor de (int) b é:10