Share via


Upozornění kompilátoru (úroveň 1) C4383

"instance_dereference_operator" : význam dereferencování popisovače se může změnit, pokud existuje operátor "operátor" definovaný uživatelem; napište operátor jako statickou funkci, která má být explicitní pro operand.

Když do spravovaného typu přidáte přepsání uživatelem definované instance operátoru dereference, můžete potenciálně přepsat schopnost operátoru dereference typu vrátit objekt popisovače. Zvažte vytvoření statického operátoru dereference definované uživatelem.

Další informace naleznete v tématu Popisovač k operátoru objektu (^) a sledovací referenční operátor.

Operátor instance navíc není dostupný pro jiné kompilátory jazyka prostřednictvím odkazovaných metadat. Další informace naleznete v tématu Uživatelem definované operátory (C++/CLI).

Příklad

Následující ukázka vygeneruje C4383.

// 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;
}