Не попадает в точку.

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

РЕДАКТИРОВАТЬ: Не обращайте внимания на мой комментарий о Spec #. Я неправильно понял, как это работает.

РЕДАКТИРОВАТЬ 2: Должно быть, я говорю не с теми людьми, я действительно надеялся, что кто-то поспорит :-)

Так что я думаю, находясь в меньшинстве, что я не прав, но я не могу понять, почему эта дискуссия имеет какое-то значение. Я вижу ноль как инструмент для поиска ошибок. Учтите следующее:

class Class { ... }

void main() {
    Class c = nullptr;
    // ... ... ... code ...
    for(int i = 0; i < c.count; ++i) { ... }
}

BAM! Нарушение доступа. Кто-то забыл инициализироватьc.

Теперь рассмотрим это:

class Class { ... }

void main() {
    Class c = new Class(); // set to new Class() by default
    // ... ... ... code ...
    for(int i = 0; i < c.count; ++i) { ... }
}

Упс. Цикл молча пропускается. Это может занять некоторое время, чтобы отследить проблему.

Если ваш класс пуст, код в любом случае потерпит неудачу. Почему бы системе не сказать вам (хотя и немного грубо) вместо того, чтобы выяснить это самостоятельно?

Ответы на вопрос(8)

Ваш ответ на вопрос