Ссылка, указывающая на Null-объект

Я видел это обсуждение - Проверка нулевого объекта в C ++ , и я был удивлен, что никто не говорил о том, когда ссылка может указывать на нулевой объект. В нашем коде мы регулярно используем нулевые объекты. Следующие функции возвращают nullObj.

const Obj&  
nullObj()  
{  
   static obj* nullPtr = NULL;   
   return static_cast<  const Obj&>(*nullPtr);    
}  

На самом деле, когда я снова посмотрел на код, чтобы поднять эту тему, у меня возникло несколько вопросов о том, как работает приведенный выше код:

  1. Как это можно сделать * nullPtr - Это правда поскольку nullPtr - это статический объект, которому в куче выделяется память и, следовательно, у него гарантированно будет некоторое пространство и

  2. Поскольку мы возвращаем ссылку на константу на obj, не создает ли компилятор временный объект (на какой-то тип nullObj ?? ) или будет ли ссылка const действовать как псевдоним для самого nullPtr?

6
задан Community 23 May 2017 в 12:01
поделиться