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.
'method1': i tipi restituiti covarianti non sono supportati in tipi gestiti o WinRTtype, altrimenti 'method2' verrebbe sottoposto a override
Osservazioni:
I tipi restituiti Covarianti non sono consentiti per le funzioni membro di Windows Runtime o durante la compilazione con l'opzione /clr (compilazione Common Language Runtime).
Esempio
L'esempio seguente genera l'errore C2392 e mostra come risolverlo.
// C2392.cpp
// compile with: /clr
public ref struct B {
public:
int i;
};
public ref struct D: public B{};
public ref struct B1 {
public:
virtual B^ mf() {
B^ pB = gcnew B;
pB->i = 11;
return pB;
}
};
public ref struct D1: public B1 {
public:
virtual D^ mf() override { // C2392
// try the following line instead
// virtual B^ mf() override {
// return type D^ is covariant with B^, not allowed with CLR types
D^ pD = gcnew D;
pD->i = 12;
return pD;
}
};
int main() {
B1^ pB1 = gcnew D1;
B^ pB = pB1->mf();
D^ pD = dynamic_cast<D^>(pB);
}