Zitat von
Muetze1:
2. Warum vergleichst du eine Instanz auf 0 anstatt auf NULL?
Was genau spricht dagegen? Defacto ist es portabler. NULL hingegen ist in einigen Implementationen typisiert (oder, schlimmer, mit #define und
C-Typecast definiert) und dann wird es bei manchem C++-Compiler (und mitgelieferten Headern) mehr als nur eine Geschmacksfrage, ob man 0 oder NULL benutzt.
Das wird allerdings ohnehin nur ein Problem wenn man C und C++ (bspw. dank Headern) mischt und so dank der Tatsache, dass der Praeprozessor keine Grenzen (wie Namespaces) kennt, in C++ ploetzlich mit sowas wie
konfrontiert wird. In den meisten Faellen wird das dann an der strikten Typisierung von C++ scheitern. Und in C++-Headern wird in den meisten Faellen ohnehin direkt stehen:
so dass es irrelevant wird.
Das schoene an der 0 ist ja gerade, dass sie keinerlei Einheit braucht (bzw. Typ im C++-Jargon) um einen Sinn zu machen. Wenn man mal den Code nach dem Durchlauf des Praeprozessors anschaut, ist da ohnehin kein Unterschied mehr. Aber eben wenn man C und C++ Header mischt oder aehnliche Dinge tut, die bewirken, dass das
eben gerade nicht gilt. Dann ist es ein kleiner bis riesiger Unterschied,
je nach Kontext. Bei den Worten "
je nach Kontext" werden sich bei jedem erfahrenen Entwickler die Fussnaegel aufrollen!