Тут еще есть небольшая закономерность. Иногда,когда мы добавляем указатели,то мы их определяем как NULL или 0. Если C++ встретит 0 в контексте,где может использоваться только указатель,он интерпретирует 0 как нулевой указатель. Фишка в том,что 0 - это значение типа int, а не указатель. С практической точки зрения то же самое относится и к NULL. Для того,чтобы инициализировать указатель,где будет использоваться 0 или NULL нужно писать nullptr. Фишка в C++11 nullptr заключается в том,что это значение не является значением целочисленного типа. Использование nullptr вместо 0 или NULL,таким образом, позволяет избежать сюрпризов перегрузки. Оно позволяет также повысить ясность кода, в особенности при применении auto-переменных.