Сейчас я изучаю единственный экземпляр (на c ++) и попробовал следующий код в моем файле .cpp.
#include "OnlyInstance.h"
OnlyInstance* OnlyInstance::instance = NULL;
..........
но компилятор сказал мне «ошибка C2065:« NULL »: необъявленный идентификатор».
Так значит, я должен
#include <stdio.h>
перед ней? Но я также включил stdio.h в основной файл. Так что stdio.h будет включен много раз при компиляции, верно? Как я могу использовать NULL правильно?
Другой вопрос заключается в том, что я знаю, что могу использовать 0 вместо NULL, но какой способ больше рекомендуется в c ++?
NULL
определяется в различных заголовках, например в <cstddef>
,
Вы должны однако предпочесть nullptr
над NULL
если ваш компилятор поддерживает это.
Включение заголовка несколько раз — не проблема (если заголовок ужасно не сломан, чего нет в стандартных заголовках).
NULL — это только определение со значением 0. Это точно то же самое.
Но если у вас есть доступ к C ++ 11, я бы порекомендовал использовать nullptr.