folgender Code gibt einen Übersetzungsfehler (zumindest bei der Verwendung von MS VS 2008) für Zeile "e = f" in main():Fehler C2582: 'operator =' Funktion in 'B' nicht zur Verfügung steht
Fehler C2582: 'Operator =' Funktion ist nicht verfügbar in 'B'
class A {
public:
A() { }
static const double x;
};
const double A::x = 0.0;
class B {
public:
B() : x(0.0) { }
const double x;
};
int main(int argc, char *argv[])
{
A c,d;
B e,f;
c = d;
e = f;
return 0;
}
Der Standardzuweisungsoperator für beide Klassen A und B erzeugt werden sollte!?
in 12.8.10: „Wenn die Klassendefinition explizit keine Kopie Zuweisungsoperator erklären, wird ein implizit deklariert.“
Ja Sie Ihre eigene Frage beantwortet.Sie erhalten ein Abzeichen (aber keine Wiederholung), wenn Sie Ihre Antwort akzeptieren. – CashCow