Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
binärer 'Operator' : 'type*' definiert diesen Operator nicht oder eine Konvertierung in einen Typ, der für den vordefinierten Operator akzeptabel ist.
Hinweise
Um den Operator zu verwenden, müssen Sie ihn für den angegebenen Typ überladen oder eine Konvertierung in einen Typ definieren, für den der Operator definiert ist.
Beispiele
Im folgenden Beispiel wird C2676 generiert.
// C2676.cpp
// C2676 expected
struct C {
C();
} c;
struct D {
D();
D operator >>( C& ){return * new D;}
D operator <<( C& ){return * new D;}
} d;
struct E {
// operator int();
};
int main() {
d >> c;
d << c;
E e1, e2;
e1 == e2; // uncomment operator int in class E, then
// it is OK even though neither E::operator==(E) nor
// operator==(E, E) defined. Uses the conversion to int
// and then the builtin-operator==(int, int)
}
C2676 kann auch bei dem Versuch auftreten, im this-Zeiger eines Referenztyps eine Zeigerarithmetik auszuführen.
Der this-Zeiger tritt in einem Referenztyp als Handletyp auf. Weitere Informationen finden Sie unter Semantik des this Zeigers.
Im folgenden Beispiel wird C2676 generiert.
// C2676_a.cpp
// compile with: /clr
using namespace System;
ref struct A {
property Double default[Double] {
Double get(Double data) {
return data*data;
}
}
A() {
Console::WriteLine("{0}", this + 3.3); // C2676
Console::WriteLine("{0}", this[3.3]); // OK
}
};
int main() {
A ^ mya = gcnew A();
}