Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
binär operator : "type*" definierar inte den här operatorn eller en konvertering till en typ som är acceptabel för den fördefinierade operatorn
Anmärkningar
Om du vill använda operatorn måste du överbelasta den för den angivna typen eller definiera en konvertering till en typ som operatorn har definierats för.
Exempel
I följande exempel genereras C2676.
// 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 kan också inträffa om du försöker göra pekararitmetik på pekaren this av en referenstyp.
Pekaren this är av typen handtag i en referenstyp. Mer information finns i Semantik för pekarenthis.
I följande exempel genereras C2676.
// 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();
}