Указатель против типов, возвращаемых по ссылке

я пытаюсь придумать конкретное объяснение, почему использовать указатель на ссылку в качестве типа, возвращаемого функцией,

я считаю, что если случайно нулевое значение возвращается ссылочному типу его невозможно проверить и может привести к ошибкам времени выполнения

  int& something(int j)
  {
      int* p = 0 ;  
      return *p;
  }

  void main()
  {
      int& i = something(5);
      i = 7;   // run-time error 
  }

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

 void main()
 {
         int* i = something(5);
         if( i != null )
             *i = 7;
 }

любые мысли будут приветствоваться еще раз,

что бы вы использовали и почему ссылку или указатель

заранее благодарим.

15
задан Luc Danton 18 October 2011 в 21:21
поделиться