Является ли nullptr в C++ таким же, как null в C#?
является ли nullptr в C++ таким же, как null в C#?
похоже, никто не задал этот вопрос в Google или Stackflow.
3 ответов
В общем да, оба присваивают нулевое значение указателю типа
- C#: типы классов, интерфейсов, делегатов или указателей
- C++: типы указателей или тип указателя на член
он не преобразуется в числовые значения на любом языке. Одно отличие заключается в том, что в C++ nullptr
можно использовать bool
. Это неверно в C#
да. В C++, nullptr
эквивалентно null
в Java, C# и различных других языках. До C++11 он был стандартным для использования NULL
(который был макросом, определенным как 0); однако, nullptr
фактически гарантирует, что он может использоваться только в контексте указателей (тогда как NULL
, в силу того, что он был определен как 0, также может использоваться в качестве возвращаемого значения для функции, которая возвращает int
вместо указателя, что противоречит интуиции), хотя оба nullptr
и NULL
неявно конвертируются в bool
.