error C2582: la función 'operator =' no está disponible en 'B'
El siguiente código da un error de compilación (al menos cuando se usa MS VS 2008) para la línea "e = f" en main ():
error C2582: la función 'operator =' no está disponible en '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;
}
El operador de asignación predeterminado debe generarse para ambas clases, A y B!?
en 12.8.10: "Si la definición de clase no declara explícitamente un operador de asignación de copia, uno se declara implícitamente".