Mejor no usar NULL en C++
Friday, January 7th, 2005 a las 20:32 por Cek
Esta mañana me decía un compañero de faenas que era conveniente no usar NULL en C++, y mi curiosidad me llevó a preguntarle el porqué sin una respuesta convincente :).
Me puse a buscar una razón, la encontré y se la dije sin decirle que lo había leído en Internet, jejeje.
The pointer is initialised to 0, and not “NULL”. There is no such thing as “NULL” in C++, so the number 0 is what we have, and use. The reason is, oddly as it may seem, that C++ is much pickier than C about type correctness. Typically in C, “NULL” is defined as “(void*)0.” C++ never allows implicit conversion of a “void*” to any other pointer type, so this definition is not good enough. The integer 0, however, is implicitly convertible to any pointer type.
Como pone aquí, en C, NULL está definido como (void *)0 y C++ nunca permite una conversión implícita de un (void *) a cualquier otro tipo de puntero, por lo que no es bueno del todo usar NULLs cuando se programa en C++. Sin embargo, el entero 0 se puede convertir a cualquier tipo de puntero de forma implícita por lo que es más correcto.
Curiosidades de la vida que uno desconoce y conviene apuntarlas en un weblog ![]()
Permalink
Almacenado en: 
Jeje, ya me decía yo “cuanto controla este”!