Delen via


Compilerwaarschuwing (niveau 1) C4383

"instance_dereference_operator": de betekenis van het dereferenceren van een handle kan veranderen wanneer er een door de gebruiker gedefinieerde 'operator' bestaat; schrijf de operator als een statische functie om expliciet te zijn over de operand.

Opmerkingen

Wanneer u een door de gebruiker gedefinieerde instantie-override van de dereferentie-operator in een beheerd type toevoegt, kan dit de mogelijkheid van de dereferentie-operator van het type om het object van de handle te retourneren beïnvloeden. Overweeg om een statische, door de gebruiker gedefinieerde deductieoperator te schrijven.

Zie Handle to Object Operator (^) en Tracking Reference Operator voor meer informatie.

Een instantie-operator is ook niet beschikbaar voor andere taalcompilers via de gerefereerde metadata. Zie User-Defined Operators (C++/CLI) voor meer informatie.

Example

In het volgende voorbeeld wordt C4383 gegenereerd.

// C4383.cpp
// compile with: /clr /W1

ref struct S {
   int operator*() { return 0; }   // C4383
};

ref struct T {
   static int operator*(T%) { return 0; }
};

int main() {
   S s;
   S^ pS = %s;

   T t;
   T^ pT = %t;
   T% rT = *pT;
}