В чем может быть разница при переходе с C & C # на C ++? - PullRequest
4 голосов
/ 24 декабря 2008

Вот простой вопрос.

Я проделал большую работу, используя оба C & C # (2.0), но никогда ничего в C ++. Что я могу ожидать, чтобы отличаться при изучении C ++? Будут ли какие-то большие проблемы или препятствия, на которые я должен обратить внимание? Есть ли у кого-нибудь хорошие краш-книги / рекомендации по веб-сайту для изучения C ++ для опытного программиста?

Ответы [ 14 ]

0 голосов
/ 24 декабря 2008
  1. Управление памятью
  2. Более сложный синтаксис
  3. Управление памятью
  4. Меньше поддержки инструмента, чем в C #, за весь жизненный цикл ООП.
  5. Управление памятью

И я уже упоминал об управлении памятью?

Я всегда думал, что интересно использовать рынок в качестве индикатора воспринимаемых потребностей сегмента населения. Рассматривая (для контраста) рынок VB, казалось бы, библиотеки компонентов являются основным акцентом. Однако с самых первых дней доминирующими предложениями на рынке C ++ (и C), по-видимому, были инструменты управления памятью, обнаружения утечек и качества кода (например, инспекторы типа lint).

0 голосов
/ 24 декабря 2008

Что касается различий в реализации языка - и я думаю, что вам нужно быть осторожным с такими вещами, как управление памятью, объявления в заголовках и т. Д. - я думаю, что самая сложная вещь, с которой нужно иметь дело, - это дополнительная перегрузка специальных символы в синтаксисе. После многих лет написания кода на C # больше всего я спотыкаюсь о том, что *, & и <> бездельничают. Моя первая реакция заключается в том, что код C ++ очень похож на большое регулярное выражение.

Я уверен, что как только вы используете его некоторое время, это уходит, но я больше не делаю достаточно C ++, чтобы чувствовать себя комфортно, когда я точно знаю, какой символ использовать в каждом случае - я передаю указатель или ссылка на этот объект?

Другой большой недостаток, при чтении чужого кода, это перегрузка операторов. Я знаю, что вы можете сделать это в C #, но я редко видел это там. Возможно, что-то изменилось, но я видел много перегрузок операторов в C ++, где +/- приводил к некоторым странным эффектам. Помимо некоторых довольно очевидных побед (таких как конкатенация строк), я думаю, что это действительно сомнительная функция, без которой я мог бы обойтись - как в C ++, так и в C #.

0 голосов
/ 24 декабря 2008

Как уже упоминалось, вы, вероятно, будете нести ответственность за управление памятью, но помимо изучения библиотек C ++ и их организации, я думаю, это не должно быть жестким переключением вообще.

0 голосов
/ 24 декабря 2008

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

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