Изучение C++ как [закрытый] программист Perl

16
задан meneldor 1 April 2010 в 07:41
поделиться

10 ответов

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

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

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

11
ответ дан 30 November 2019 в 16:14
поделиться

Я прошел через противоположный процесс. Одна из первых вещей, которую я узнал, заключалась в том, что, хотя вы можете писать код Perl, который выглядит как C или C ++, вам не следует этого делать. То же самое и с вами. Вы, вероятно, сможете найти способ написать код на C ++ в стиле Perl, но не беспокойтесь. Слишком разные языки. Вам нужно научиться писать код на C ++ как программист на C ++. Уже предложено несколько товарных книг. Я думаю, вам следует увеличить это, найдя наставника . Вы сразу же получите обратную связь, если вы делаете что-то правильно или неправильно. Вы также можете ознакомиться с C ++ FAQ Lite , особенно с главами 28 и 29, посвященными проблемам для начинающих программистов на C ++.

Самая большая разница в том, что C ++ строго типизирован. У каждой переменной есть тип, и он не меняется. Ваш пример кода Perl технически возможен на C ++, но для него требуется дополнительная библиотека, к которой я еще не уверен, что вы готовы. Вместо этого в C ++ можно рассматривать набор смешанных, но связанных элементов как их собственный новый тип - struct или class .

Еще один отличный вариант - разместить здесь, на SO, конкретные вопросы по C ++. Мы поощряем вопросы начального уровня, если они четко сформулированы и демонстрируют некоторые предварительные усилия.

7
ответ дан 30 November 2019 в 16:14
поделиться

Я пытался выучить C ++ из книги «Thinking in C ++». Мне было очень и очень трудно учиться.

Для тех, кто начинает изучать C ++, гораздо лучше будет книга «Ускоренный C ++: практическое программирование на примерах» Эндрю Кенига и Барбары Э. Му

6
ответ дан 30 November 2019 в 16:14
поделиться

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

Вы не найдете ни одной книги, которая поможет вам написать код, подобный тому, который вы только что показали. Perl - очень слабо типизированный язык, а C++ - прямо противоположный: сильно типизированный язык. Тем не менее, есть способы получить что-то вроде того, что вы показываете в своем сообщении в различных конструкциях boost, таких как variant и tuple.

Однако я бы посоветовал изучать C++ как совершенно самостоятельный язык, прежде чем приступать к подобным вещам. Не изучайте C++ как Perl-программист, изучайте его как полный новичок. Первые несколько глав могут вам наскучить, но в конце концов вы будете лучше понимать стиль и возможности C++ по сравнению с Perl. Я не видел ни одной книги "Xlanguage for Ylanguage", которая поможет вам в этом.

11
ответ дан 30 November 2019 в 16:14
поделиться

Второе мышление на C ++. Я прочитал его после знакомства с Perl, и он мне очень понравился. Второе издание не предполагает знания Си; вот что написано в разделе «Предварительные условия» в предисловии:

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

Как сказал Данбен, вам просто нужно «забыть все, что вы знаете о perl». Полезно знать Perl только потому, что это другой язык программирования (даже C-подобный), но он далеко не настолько похож, чтобы просто «изучить различия».

Также: «Мышление на C ++» бесплатно для электронной версии.

3
ответ дан 30 November 2019 в 16:14
поделиться

Я работаю с Perl исключительно на своей основной работе и программирую на C++ для развлечения по вечерам и выходным. Они требуют совершенно разного склада ума. Лучше подходить к C++ как программист-новичок и изучать его от "Hello World" и выше. Конечно, вы можете быстро изучить общие понятия, такие как типы данных, но все же уделяйте достаточно внимания, чтобы отличать короткое от длинного и ссылку от указателя.

Я бы не стал сначала изучать C, если только вам действительно не нужно знать C. Работа с символами в C - это мучение и не подходит для того, что, как я подозреваю, вы хотите сделать. Класс String в C++ - ваш друг: выучите его, живите им и любите его!

3
ответ дан 30 November 2019 в 16:14
поделиться

На самом деле, поскольку вы уже знаете императивный язык, изучение C совсем не займет у вас много времени. Основы все те же - операторы if, циклы while, циклы for и т. Д. Даже способ организации пространств имен схож (хотя внутренности, конечно, различаются). Возможно, вы захотите скрыть часть обработки указателя, например C ++ делает ссылки немного по-другому, но вы не навредите себе, взяв и прочитав копию K&R (официальная ссылка C) хотя бы один раз. (В любом случае у каждого порядочного программиста должна быть копия на книжной полке в качестве справочника.)

После этого возьмите последнее издание Stroustrup и возьмите его, убедившись, что вы проработаете упражнения. Некоторые концепции могут быть немного чужды Perl-ориентированному уму, но это не будет слишком странным. Если вы столкнетесь с определенной концепцией, которую считаете сложной, опубликуйте ее еще раз на SO, и многие люди будут счастливы пройти через это вместе с вами!

K&R
(источник: wikimedia.org )

Stroustrup
(источник: att.com )

1
ответ дан 30 November 2019 в 16:14
поделиться

Здесь вы можете найти огромное количество бесплатных книг для скачивания/онлайн.

0
ответ дан 30 November 2019 в 16:14
поделиться

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

0
ответ дан 30 November 2019 в 16:14
поделиться

Мой университет рекомендовал нам эту книгу: http://www.lrde.epita.fr/~akim/ccmp/assignments .html # C_002b_002b-Primer

В любом случае, «Мышление на C ++» доступно в Интернете бесплатно. Вы можете найти ссылку на предыдущую ссылку, которую я вам дал.

Удачи :)

0
ответ дан 30 November 2019 в 16:14
поделиться
Другие вопросы по тегам:

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