Каков наилучший способ перехода с Java / C # на C ++? [закрыто]

В моем университете большинство моих занятий были на Java. Я также недавно изучил C # (и среду Visual Studio) во время летней практики. Сейчас я беру вступление к уроку компьютерной графики, и аспирант, преподающий урок, предпочитает, чтобы мы использовали C ++ для доступа к привязкам OpenGL через GLUT.

У кого-нибудь есть хорошие ресурсы о том, как сделать хороший переход с Java / C # на C ++? Очевидно, что указатели будут большой проблемой, но есть ли другие вещи, на которые я должен обратить внимание? Любые учебники, руководства и т. Д. Будут очень полезны!

Спасибо!

21.08.2008 04:46:02
10 ОТВЕТОВ
РЕШЕНИЕ

Да, я столкнулся с той же ошибкой. Университет, как правило, опирался на Java, а затем позволял вам выбирать язык, с которым вы хотели работать во время проектов.

Лучший способ - просто прыгнуть. Начните с малого, сделайте маленькие шаги, и просто вещи Google, которые сбивают вас с толку, когда вы туда попадаете. Также найдите проекты, которые выпустили свой исходный код. Посмотрите, как они структурируют свои программы. В основном, просто возиться с понятиями. В Интернете много информации.

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

Вот некоторые места, которые я нашел полезными во время обучения

http://www.cprogramming.com/

http://www.wikipedia.com

http://www.cplusplus.com/

8
21.08.2008 05:30:59

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

4
21.08.2008 04:51:20

Эффективный C ++ Скотта Мейерса - отличная книга, которая поможет вам выучить C ++. Дает вам обзор языка и вводит много ключевых понятий, которые вы будете использовать при разработке практически любой программы на C ++.

2
21.08.2008 05:00:56

Эффективный C ++ Скотта Мейерса - отличная книга, которая поможет вам выучить C ++. Дает вам обзор языка и вводит много ключевых понятий, которые вы будете использовать при разработке практически любой программы на C ++.

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

Я не знаю, печатается ли он по-прежнему, но я нашел Navigating C ++ полезной, но мне также очень понравились указатели из Pascal. Конечно, я забыл, что 15 лет назад вы должны были узнать, что такое ООП, а теперь это немного более предположительно. Так что, возможно, Майер не вне линии. Мысли?

2
21.08.2008 05:47:07

В Википедии есть статья о сравнениях между Java и C ++ .

Вам не нужно беспокоиться о проверенных исключениях в C ++, но вам нужно знать о правильности констант .

2
21.08.2008 06:11:43

Есть два основных различия: синтаксис и управление памятью.

В C ++ у вас есть указатели, которые являются более мощными (или менее мощными в зависимости от вашей интерпретации мощности) ссылок на объекты, о которых вы уже знаете из Java.

В Java вы можете сделать это:

Thing mything = new Thing(); // mything is an object reference
mything.method();

В C ++ вы бы сделали это:

Thing * mything = new Thing(); // mything is an object pointer
mything->method();
delete mything;

Синтаксическая разница очевидна: «->» вместо «.» при вызове метода объекта из указателя на объект. В C ++ вы должны явно освободить память, когда закончите с объектом. В конце концов вы делаете то же самое в C ++ и Java, создаете экземпляры объектов и вызываете методы, ставите бесполезные точки с запятой в конце каждой строки и т. Д. Не удивительно ли, что Python становится таким популярным ?:

mything = Thing() # mything is whatever I want it to be
mything.method()

Пролистывая любой наполовину приличный текст на C ++, вы сможете заполнить остальные детали.

2
21.08.2008 07:19:36

Я также полностью рекомендую « Размышления» Брюса Экеля в C ++ . Фантастическая книга для уже опытных программистов, которые хотят проникнуть в мышление C ++.

Он достаточно любезен, чтобы сделать электронные версии своих книг доступными бесплатно .

2
21.08.2008 09:26:29

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

2
21.08.2008 18:36:57

У меня была точно такая же проблема. Единственная книга, которую мне удалось найти, была «Pro ​​Visual C ++ 2005 для разработчиков на C #» Дина С. Виллса . Это хорошее чтение с отличными примерами, и я думаю, что угол, с которого выходит книга, вероятно, то, что вы ищете.

2
21.08.2008 20:52:36

Вам нужно совершенно другое чувство для обработки памяти. Также подумайте о том, чтобы освободить все, что вам больше не нужно. В Java и C # вы просто отпускаете свои объекты, и память восстанавливается - вы не можете сделать это в CPP

1
21.03.2012 01:41:37