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

StackOverflow https://stackoverflow.com/questions/19347

  •  09-06-2019
  •  | 
  •  

Вопрос

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

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

Спасибо!

Это было полезно?

Решение

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

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

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

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

http://www.cprogramming.com/

http://www.wikipedia.com

http://www.cplusplus.com/

Другие советы

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

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

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

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

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

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

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

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

В C ++ у вас есть указатели, которые являются более мощными (или менее мощными в зависимости от вашей интерпретации power) ссылками на объекты, о которых вы уже знаете из 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 ++ поможет вам заполнить остальные детали.

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top