Каков наилучший способ перехода с Java/С# на С++?

В моем университете большинство моих классов были на Java. Недавно я изучил С# (и среду Visual Studio) на летней стажировке. Теперь я беру класс Intro to Computer Graphics, а ученик grad, преподающий класс, предпочитает использовать С++ для доступа к связям OpenGL через GLUT.

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

Спасибо!

Ответ 1

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

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

Сделайте это весело и возьмите С++ game development book, чтобы он не стал слишком ошеломляющим.

Здесь некоторые места, которые я нашел полезными, изучая

http://www.cprogramming.com/

http://www.wikipedia.com

http://www.cplusplus.com/

Ответ 2

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

Ответ 3

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

Ответ 4

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

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

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

Ответ 6

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

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

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

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

В С++ вы сделаете следующее:

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

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

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

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

Ответ 7

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

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

Ответ 8

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

Ответ 9

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

Ответ 10

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