Почему в C++ нет «ссылки NULL»?

Я читал C++ FAQ -"8.6 -Когда следует использовать ссылки, а когда указатели? "и, в частности, это утверждение:

Use references when you can, and pointers when you have to.

...

The exception to the above is where a function's parameter or return value needs a "sentinel" reference — a reference that does not refer to an object. This is usually best done by returning/taking a pointer, and giving the NULL pointer this special significance (references must always alias objects, not a dereferenced NULL pointer).

Из того, что я видел, потребность в "дозорной" ссылке действительно часто является причиной использования указателей вместо ссылок. Мне интересно :, почему в C++ нет специального «значения NULL» для ссылок? Кажется, это сделало бы указатели почти ненужными, что решило бы многие проблемы.

Так почему же это не было частью спецификации языка?

Изменить:

Я не уверен, что мой вопрос понятен -Думаю, я не спрашиваю буквально о NULL-ссылках. Чаще всего я читал, что в C++ "ссылка - это объект". И в большинстве языков ООП объекты могут быть NULL -Pascal, C #, Java, JavaScript, PHP и т. д. во всех этих случаях вы можете делать someObject = nullили someObject := nil. На самом деле Паскаль также поддерживает указатели, но все же позволяет объектам быть nil, так как он имеет свое применение. Так почему же C++ какой-то особенный и не имеет объекта NULL? Было ли это просто упущением или реальным решением?

8
задан laurent 28 April 2016 в 12:11
поделиться