Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
impossibile utilizzare casting_operator per eseguire la conversione da 'type1' a 'type2'
Osservazioni:
Un operatore di cast ha tentato di eseguire la conversione tra tipi incompatibili. Ad esempio, non è possibile utilizzare l'operatore dynamic_cast per convertire un puntatore in un riferimento. Non è possibile utilizzare l'operatore dynamic_cast per allontanare i qualificatori. Tutti i qualificatori sui tipi devono corrispondere.
È possibile usare l'operatore const_cast per rimuovere attributi come const, volatileo __unaligned.
Esempi
L'esempio seguente genera l'errore C2682:
// C2682.cpp
class A { virtual void f(); };
class B: public A {};
void g(A* pa) {
B& rb = dynamic_cast<B&>(pa); // C2682
}
L'esempio seguente genera l'errore 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
}