Является ли 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
,