Why C++ is better than C?

топ 100 блогов ivansorokin — 13.02.2010 Как-то была дискуссия с Why C++ is better than C? [info]vitus_wagner на тему САБЖа. Я тогда собирался написать большой пост на эту тему. Пост я написал, но он мне не очень нравился и я его так и не выложил. Я решил, что попытаюсь написать это всё заново, но буду выкладывать по чуть-чуть.

Кроме того в интернетах очень много обоснований в обратную сторону. Я считаю необходимо восстановить баланс силы.

Совет 1. Используйте string вместо массива чаров

Почему массивы чаров плохие?

  1. Они могут переполняться (либо ваши строчки будут обрубаться, либо вы будете срать в память)
  2. Если вам всё-таки понадобиться настоящая строчка переменной длины, вам придётся писать больше кода, чем на Плюсах (а ещё и думать когда освобождать память)
  3. Специальное значение символа '\0' встречающегося в самых неподходящих местах


Итак
  1. Если вы хотите написать char str[100]; пишите string str;
  2. Если вы хотите написать char * str = new char[100]; (это не Си, но во многих Плюсовых программах я встречал такие вещи) пишите string str;
  3. Вместо strcmp надо использовать operator== (вам больше не надо думать что означает if (!strcmp(a, b)).
  4. Вместо strcpyoperator=.
  5. Вместо strcat, у string есть operator+ и функция append.


C++ — это очень просто. Станет ли от этого ваш код лучше? Несомненно. Кстати он ещё и заметно подсократится от этого.

Понимаете, на Сях невозможно написать класс string, чтобы я мог просто взять и пользоваться им как int'ом ни о чём не думая (попробуйте попользуйтесь GString из GLib).

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

UPD: Проредил коменты, а то какой-то холивор начался.

Оставить комментарий

Архив записей в блогах:
Я устал удивляться людям, которые оправдывают грабежи, погромы и поджоги борьбой с расизмом. А не пошли бы вы в задницу? https://www.youtube.com/results?search_query=violent+protests "Мирные протестующие" говорите? 'ACT OF DOMESTIC TERRORISM': A Federal Protective Service officer was ...
 Президент России Дмитрий Медведев подписал указ «О Дне русского языка», сообщает в понедельник пресс-служба Кремля. Об этом пишет «Интерфакс». «Теперь день рождения Александра Пушкина — День русского языка. Говорите правильно — и не только ...
В разное время эти фильмы произвели на меня сильное впечатление. Делюсь и советую посмотреть! «Молодость» (2015) "Молодость"/ Youth, 2015 Фильм Паоло Соррентино повествует о ...
Просьба избегать широких понятий - юрист, журналист, манагер.Если юрист, лучше уточнить - прокурор или чистильщик туалетов в здании суда.Журналист тоже скорее отрасль чем должноть, конкретизируйте.Во втором пункте отвечайте изходя из того, к ...
Девушка получила рушник и осталась довольна. И это прекрасно ) Самая лучшая оценка для меня. Доедут ли заказанные ткани для другого заказа - не знаю. То есть они когда-то доедут, но когда? Опять из-за локальных вспышек ковида закрываются города или части городов. И это и на доставку ...