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: Проредил коменты, а то какой-то холивор начался.

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

Архив записей в блогах:
С этой гнусной политикой народ все меньше стал смотреть по сторонам, следить на экономикой, финансами, рынками и окружающими событиями. Ну а пока они там совершают отвлекающие маневры, США медленно, но верно сползают в рецессию (на первый квартал нулевое изменение ВВП к предыдущему квартал ...
В мировых неолиберальных СМИ с прошлого года меняются одно за другим три названия стран - "врагов свободы, демократии и прав человека". Беларусь, Венесуэла, Северная Корея. Что-то вроде медиа-игрры в наперстки. В прошлые выходные была Беларусь, в позапрошлые - Венесуэла. В следующие ...
Ребята. Друзья и незнакомцы! Я пишу этот пост просто потому что не знаю, что я могу сделать еще. Потому что есть вещи, которые невозможно забыть. Которые хочется развидеть любой ценой: лоботомии, электрошока, таблеток. Потому что сейчас я увидела такое, и у меня дрожат руки и ноги. Как и ...
К сожалению, всё хорошее кончается. Ситуация, когда меня 4 раза подряд пытались пересадить на новый дизайн Livejournal, стала последней каплей. ЖЖ и так давно является чемоданом без ручки, который поедает время, а с таким навязчивым сервисом уже как-то совсем перебор. Посему. С этого ...
Лечь артисту в гроб, пусть и бутафорский, всегда считалось плохой приметой. Приятного мало. С тебя снимают мерку, как с покойника, и заказывают "деревянный макинтош", соответствующий личным параметрам. Разница лишь в том, что в твоем доме играет музыка, которую ты ...