Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
ne peut pas utiliser casting_operator pour convertir de 'type1' en 'type2'
Remarques
Un opérateur de cast a essayé de convertir entre les types incompatibles. Par exemple, vous ne pouvez pas utiliser l’opérateur dynamic_cast pour convertir un pointeur en référence. L’opérateur dynamic_cast ne peut pas être utilisé pour convertir des qualificateurs. Tous les qualificateurs sur les types doivent correspondre.
Vous pouvez utiliser l’opérateur const_cast pour supprimer des attributs tels que const, volatileou __unaligned.
Exemples
L’exemple suivant génère l’erreur C2682 :
// C2682.cpp
class A { virtual void f(); };
class B: public A {};
void g(A* pa) {
B& rb = dynamic_cast<B&>(pa); // C2682
}
L’exemple suivant génère l’erreur C2682 :
// C2682b.cpp
// compile with: /clr
ref struct R{};
ref struct RR : public R{};
ref struct H {
RR^ r ;
short s;
int i;
};
int main() {
H^ h = gcnew H();
interior_ptr<int>lr = &(h->i);
interior_ptr<short>ssr = safe_cast<interior_ptr<short> >(lr); // C2682
interior_ptr<short>ssr = reinterpret_cast<interior_ptr<short> >(lr); // OK
}