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

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

Архив записей в блогах:
Гостиница, где в Питере проходил семинар Хаузнера, где я была, находится совсем рядом с Новодевичьим кладбищем . Там похоронен мой пра-пра-... дедушка, Феодосий Федорович Веселаго . Зимой я была здесь, могила была не видна под снегом.  Сейчас ...
Киев поражает сразу. Едва только выходишь с вокзала. Во-первых - плакаты ...
Не уберегли мы Муслима. Кровожадные щупальца кинопродюсеров добрались и до него. На выходе – многосерийное мыло «Магомаев». Ни Христос не уберег, ни Аллах. Финансирует проект Первый канал, а не семья Агаларовых, как можно было подумать. Эмин в интервью признался, что с ...
2 февраля 2023 года индекс S&P 500 завершил то, что технические аналитики называют "золотым крестом", когда 50-дневная простая скользящая средняя пересекается через 200-дневной. Эта система имеет неплохой, но не удивительный послужной список для улавливания больших трендовых ...
Почему Андрей Бильжо не отличим от Семена Новопрудского? Почему они пишут так одинаково? Почему они, считающие себя продвинутыми и креативными, так утомительно-однообразны? Почему они, словно глухари на току, слышат только себя? Почему-почему-почему (бьюсь головой о монитор). Бильжо пишет ...