Переход от Java до C и затем C++? [закрытый]

Razor автоматически HTML-экранирует весь вывод кода.
Вы можете предотвратить это, написав @Html.Raw(...)

В качестве альтернативы, вы можете поместить кавычки в буквальный текст:

<li class="@(active ? "active" : "")>

Ваш пример работает, потому что у вас фактически нет кавычек.
Сгенерированный источник HTML читает <li class=active>.

5
задан Adeel Ansari 8 June 2009 в 02:50
поделиться

7 ответов

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

Теперь вы спросили о дизайне. Я думаю, что это та часть, которая вам больше всего понравится. В ООП, если вы хотите создать простую оболочку над базой данных, вы должны создать объект, а затем настроить систему наследования с полиморфными функциями и т. Д.

В C вы просто создадите файл с именем sqlite_wrapper.c , включите # sqlite3.h, и вы начнете писать код. Вы сделаете пару функций, Выберите параметры, которые вы хотите отправить (структуры и значения), и все готово.

В C у вас нет классов, но есть ФАЙЛЫ. Наличие разных файлов уже разделяет логику. В Java у вас есть файлы + классы внутри них для разделения логики, и это тоже очень хорошо.

Удачи, получайте удовольствие.

5
ответ дан 18 December 2019 в 06:12
поделиться

Если вы привыкли к объектно-ориентированному программированию, самая сложная часть перехода на не-объектно-ориентированный язык будет заключаться в адаптации к логистике «моделирования объектов» с использованием существующего механизма. В C это обычно подразумевает наличие структуры, а затем набор функций, которые принимают эту структуру в качестве параметра. С C ++ этого можно избежать.

Однако самая большая проблема при переходе на C или C ++ будет заключаться в том, чтобы привыкнуть к указателям и распределению памяти. Вы, несомненно, сначала сделаете ошибки при ссылках и разыменовании и запутаетесь в ссылках C ++, когда будете работать с ними. Вы также несомненно вызовете утечку памяти или ошибки. А так как вы работаете «по проводу», то вылетов изрядно не будет. Я не уверен, что есть способ преодолеть эти боли, но практикуйся.

10
ответ дан 18 December 2019 в 06:12
поделиться

Хочу сказать, что выучить C ++ на базе Java будет легче, чем на основе C.

Accelerated C ++ не будет сложнее, это начальный уровень книга. Есть много других хороших книг. Размышление на C ++ может быть хорошим началом, но оно может утомить вас множеством знакомых вещей. Итак, я бы посоветовал просто пройти через это, а затем взять «Эффективную серию». Тогда подойдет Exceptional, Modern C ++.

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

Эта ветка SO предоставляет хороший и важный список литературы по C ++.

4
ответ дан 18 December 2019 в 06:12
поделиться

Между C и C ++ есть существенные различия. Основным из них является использование объектно-ориентированного дизайна в C ++. Есть также незначительные отличия, которые связаны скорее с типом сделки «привыкание», чем с чем-либо еще. Вот несколько из них, чтобы нарисовать общую картину.

  1. Различия в динамическом распределении памяти.
  2. Отсутствие перегрузки функций в C
  3. Отсутствие прототипов функций в C
  4. Различные стили приведения типов
  5. Более обширный библиотека на C ++.

Поскольку вы переходите с Java, объектно-ориентированное программирование должно стать для вас чем-то вроде привычки, и вам будет легче перейти на C ++. Если вам абсолютно необходимо начать с C, в этом нет ничего страшного. Вы по-прежнему сможете понять те же общие концепции, которые используются в обоих языках.

3
ответ дан 18 December 2019 в 06:12
поделиться

Я прошел путь от программиста на уровне Uni 2-го года на Java (с большим опытом работы с другими языками, отличными от c) до новичка в C ++, получив примерно 2 часа обучения от друга. По строкам «Вот как вы объявляете класс, вот привет, мир и т. Д.».

Переход оттуда к C намного более болезнен, поскольку C ++ имеет большинство возможностей Java (самая большая из которых отсутствует - сборка мусора). Я бы посоветовал вам изучить Boost (библиотеку C ++), особенно интеллектуальные указатели. Кроме того, время, потраченное на освоение стандартной библиотеки шаблонов C ++, потрачено не зря!

2
ответ дан 18 December 2019 в 06:12
поделиться

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

C По сравнению с Java:

  • Есть указатели, это позволяет осуществлять доступ на более низком уровне и делает интересные ошибки.
  • Язык скудный - функций гораздо меньше.
  • Нет JVM для защитите вас красивым броском, объясняющим ошибку и номер строки. Существует некоторая поддержка ОС, но она сильно ограничена, поэтому вам придется использовать инструменты.
  • Никакой сборки мусора, если вы не используете , вам придется позаботиться о своей памяти самостоятельно.

Подводя итог: основной проблемой будет отладка. Вы столкнетесь с некоторыми новыми ошибками, когда дело доходит до памяти и использования указателей, и вы » Придется использовать инструменты / подумать, чтобы решить эту проблему, так как JVM отсутствует.

1
ответ дан 18 December 2019 в 06:12
поделиться

Как говорили многие другие. Это возможно, если вы узнаете различия. В некоторых случаях вам нужно использовать другие способы, в некоторых случаях вы можете попробовать программировать на языке, а не на языке, например, «моделирование» объектов с помощью структур и указателя на структуру в качестве первого аргумента. Если у вас есть опыт, и вы вынуждены с ним работать, вы его усвоите.

Две вещи, которые я хочу вам порекомендовать:

  1. Изучив основы языка, попытайтесь получить глубокое понимание указателей и обработки памяти, где использовать *, &,. , ->, есть важные отличия, и я пробовал их, пока программа не работала. Это очень плохая идея.

  2. Подумайте, как вы можете действительно протестировать свои программы, используя отладчик, насколько это возможно, чтобы понять, почему ваша программа работает или дает сбой и что происходит. Вы можете делать ошибки, которые никогда не обнаруживаются, но когда это важно и у вас нет времени, они вас съедят

1
ответ дан 18 December 2019 в 06:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: