Qu'est-ce que null/nil en C++ et comment travailler avec ?
Question : Qu'est-ce que null/nil en C++ et comment travailler avec ?
Bonjour les collègues ! Je passe au C++ après Python et Java et je n'arrive pas à comprendre le concept de null/nil dans ce langage. En Python, il y a None, en Java — null, et en C++ je rencontre à la fois nullptr, NULL, et simplement 0. Est-ce la même chose ? Dans quels cas utiliser quoi ?
J'ai essayé d'écrire ce code :
#include <iostream>\n\nvoid foo(int* ptr) {\n if (ptr == NULL) {\n std::cout << "Pointer is NULL" << std::endl;\n }\n}\n\nint main() {\n int* p = nullptr;\n foo(p);\n return 0;\n}Le code se compile, mais je ne suis pas sûr que ce soit correct. J'ai aussi entendu parler de std::optional — est-ce une histoire complètement différente ? Ou est-ce un remplacement moderne de null ? J'attends une explication claire : lequel de ces éléments