Estoy escribiendo una simulación de física (modelo de Ising) en C++ que opera en celosías cuadradas. El corazón de mi programa es mi clase Ising con un constructor que solicita las dimensiones de fila y columna del enrejado. Tengo otros dos métodos para establecer otros parámetros del sistema (temperatura & estado inicial) ¡que se debe llamar al antes de desarrollar el sistema! Así, por ejemplo, un programa de ejemplo podría tener este aspecto¿Considera que los pasos de inicialización múltiples son "deficientes"?
int main() {
Ising system(30, 30);
system.set_state(up);
system.set_temperature(2);
for(int t = 0; t < 1000; t++) {
system.step();
}
return 0;
}
Si el system.set _ *() métodos no son llamados antes system.step(), system.step() lanza una excepción de alerta el usuario al problema Lo implementé de esta manera para simplificar mi constructor; es esta mala practica?
No, no es mala forma, más que absoluto principiante el código es de forma pobre. Es como ese código absoluto para principiantes. Con algo más de experiencia, aprenderá sobre invariantes de clase y RAII (ambos requieren un solo paso de construcción), y aprenderá sobre técnicas para admitir el uso simple de constructores, como NPI. –