witam,
chciałbym się dowiedzieć czemu większość osób mówi żeby zamienić null na nullptr
jaka jest różnica między nimi?
0
1
@fasadin od jakiej wersji boosta?
nullptr
jest w standardowej bibliotece od C++11
Z ciekawości: dlaczego dodałeś tag C
? Co nullptr
ma do C?
6
Jedno i drugie działa tak samo, do tego samego służy, jest tak samo szybkie/wolne.
nullptr
w pewnych rzadkich w praktyce okolicznościach pozwala uniknąć błędu który można niechcący popełnić używając NULL. (błąd można też naprawić w inny sposób niż przez użycie nullptr).
void foo(void *bar);
void foo(int x);
Wywołanie foo(NULL)
spowoduje wykonanie drugiej funkcji zamiast pierwszej, bo NULL to 0, a 0 to int. Dlatego wprowadzono nullptr, który nigdy nie jest intem.
NULL w C++ istnieje bo pochodzi z języka C (początkowo C++ był traktowany jako rozszerzenie C). w języku C nie ma problemu z NULL bo nie ma przeładowywania funkcji.