Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
bináris "operátor" : "type*" nem határozza meg ezt az operátort, vagy az előre definiált operátor számára elfogadható típusra való átalakítást
Megjegyzések
Az operátor használatához túl kell terhelnie a megadott típusra, vagy meg kell határoznia egy olyan típusra történő átalakítást, amelyhez az operátor definiálva van.
Példák
Az alábbi példa C2676-ot hoz létre.
// 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 akkor is előfordulhat, ha mutató aritmetikai műveletet kísérel meg végrehajtani egy this referenciatípus mutatóján.
A this mutató típusú fogantyú egy hivatkozástípusban. További információ: A mutató szemantikájathis.
Az alábbi példa C2676-ot hoz létre.
// 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();
}