¿Cuáles son algunos modismos, conceptos erróneos y trucos relacionados con C ++ que has aprendido de la experiencia?
¿Cuáles son algunos modismos, conceptos erróneos y trucos relacionados con C ++ que has aprendido de la experiencia?
Un ejemplo:
class A
{
public:
char s[1024];
char *p;
A::A()
{
p = s;
}
void changeS() const
{
p[0] = 'a';
}
};
Incluso sé que changeS es una función miembro constante, está cambiando el valor del objeto. Entonces, una función miembro const solo significa que tratará todas las variables como const, y no significa que realmente mantendrá a todos los miembros const. (¿por qué? la palabra clave const en la función miembro trata char * p; como char * const p; y no como const char * p;
Lo que significa que p no puede apuntar a otra cosa. Y no es que no puedas cambiar los datos de p.