Todos sabemos que el puntero (y otros tipos de POD) deben inicializarse.
La pregunta entonces es 'quién debería inicializarlos'.
Bueno, básicamente hay dos métodos:
- El compilador los inicializa.
- El desarrollador los inicializa.
Supongamos que el compilador inicializó cualquier variable no inicializada explícitamente por el desarrollador. Luego nos encontramos con situaciones en las que inicializar la variable no era trivial y la razón por la que el desarrollador no lo hizo en el punto de declaración fue que necesitaba realizar alguna operación y luego asignar.
Entonces ahora tenemos la situación en la que el compilador ha agregado una instrucción adicional al código que inicializa la variable a NULL y luego se agrega el código del desarrollador para realizar la inicialización correcta. O bajo otras condiciones, la variable potencialmente nunca se usa. Muchos desarrolladores de C ++ gritarían mal en ambas condiciones a costa de esa instrucción adicional.
No es solo cuestión de tiempo. Pero también espacio. Hay muchos entornos en los que ambos recursos son un bien escaso y los desarrolladores tampoco quieren renunciar.
PERO : Puede simular el efecto de forzar la inicialización. La mayoría de los compiladores le advertirán sobre las variables no inicializadas. Así que siempre cambio mi nivel de advertencia al nivel más alto posible. Luego dígale al compilador que trate todas las advertencias como errores. En estas condiciones, la mayoría de los compiladores generarán un error para las variables que no están inicializadas pero que se usan y, por lo tanto, evitarán que se genere código.