LINUX.ORG.RU

Интересная книга по C++


0

0

Имеется проблема: при чтении книг по C++ клонит в сон.
Может не те книги читаю? Посоветуйте что-нибудь по-интереснее. Хотелось бы чтобы было поменьше «воды».
С программированием знаком, хотелось бы изучать именно C++, а не основы программирования.

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

Страуструп и Алексадреску.

Шилдт для самых маленьких.

anonymous
()

Может лучше не только читать, а писать какой-то код? чтобы не так скучно было.

mono ★★★★★
()
Ответ на: комментарий от korvin_

>может лучше и не про С++

Ну да, ассемблер наше все.

Zhbert ★★★★★
()
Ответ на: комментарий от korvin_

ну почему.. если программировать «для интереса», но С++ располагает к этому. Изучить Александреску и писать код с трехэтажными шаблонами и бустом :) интересно же!

mono ★★★★★
()

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

anonymous
()
Ответ на: комментарий от mono

> ну почему.. если программировать «для интереса», но С++ располагает к этому.

нет. С++ располагает к мозгое*бству

korvin_ ★★★★★
()
Ответ на: комментарий от korvin_

>нет. С++ располагает к мозгое*бству

Ну хз, у меня С++ вызывает оргазмотические порывы в процессе кодинга.

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

С++ располагает к мозгое*бству

у меня С++ вызывает оргазмотические порывы

Не вижу противоречия, кстати.

thesis ★★★★★
()
Ответ на: комментарий от thesis

>Не вижу противоречия, кстати.

Угу, я уже тоже.

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

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

anonymous
()
Ответ на: комментарий от mono

> Может лучше не только читать, а писать какой-то код? чтобы не так скучно было.

+1. Помогает.

question4 ★★★★★
()
Ответ на: комментарий от antony986

книгу забыл: Практический подход к решению проблем программирования на С++

antony986
()
Ответ на: комментарий от korvin_

>С++ располагает к мозгое*бству

C++ выпрямляет мозги в направлении грамотного ООП. Я после освоения Страустуба на свои старые проекты смотрю как новыми глазами. Всё становится как-то ясно, структурировано и логично.
А SICP'ы ваши, конечно, занятны и интересны, но лично мне на практике не приходилось сталкиваться со всякими замыканиями и прочим. А про абстракции у Страуструпа куда лучше изложено по-моему.

anonymous
()
Ответ на: комментарий от anonymous

C++ выпрямляет мозги в направлении грамотного ООП

У Страуструпа была задача реализовать быстрое ООП, а не грамотное. Что он с успехом и сделал.

baverman ★★★
()
Ответ на: комментарий от anonymous

Более того, мой милый цппфаг, сдается мне, что ты со своим просветленным абстракциями умом даже не осилишь упражнение 1.3 из SICP.

baverman ★★★
()
Ответ на: комментарий от anonymous

Всякие метапрограммирования открыли в цпп после его создание. Надо делать на цпп так, как задумывалось, тогда не создастся ложных впечатлений.

frey ★★
()

Стас, это не ты? )

frey ★★
()
Ответ на: комментарий от baverman

>Более того, мой милый цппфаг, сдается мне, что ты со своим просветленным абстракциями умом даже не осилишь упражнение 1.3 из SICP.

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

Ключевой момент программирования - это управление сложностью, т.е. решение серьёзных задач, а не трёхстрочных функций (что, кстати, акцентируется и в твоём SICP). И Страуструб уделил проектированию центральное место, сделав его максимально удобным, логичным и понятным.

anonymous
()

> Имеется проблема: при чтении книг по C++ клонит в сон.

У меня такая проблема со всеми книгами, даже интересными.

const86 ★★★★★
()
Ответ на: комментарий от anonymous

> А SICP'ы ваши, конечно, занятны и интересны, но лично мне на практике не приходилось сталкиваться со всякими замыканиями и прочим. А про абстракции у Страуструпа куда лучше изложено по-моему.

Странно. Почему-то когда я пишу на плюсах, я частенько матерюсь на тему: «почему мне приходится эмулировать замыкания через задницу».

Shimuuar
()
Ответ на: комментарий от Shimuuar

>Почему-то когда я пишу на плюсах, я частенько матерюсь на тему: «почему мне приходится эмулировать замыкания через задницу».

Может потому что ты не слышал про объекты-функции?

anonymous
()
Ответ на: комментарий от anonymous

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

Зря не видишь, на самом деле задача очень интересна.

Я думаю, 99% цпп-кунов, которые обучаются программированию по книжкам о с++, не решат такой ее вариант:

Определите функцию, которая принимает 10 аргументов-чисел и возвращает сумму квадратов двух бОльших из них.

Ну как? Попробуешь написать реализацию? Честно, говоря, на с++ я даже не знаю как подобраться, не силен в этом языке.

baverman ★★★
()
Ответ на: комментарий от baverman

Ну и ? В чем сложность то?. Задача сводится к нахождению n наибольших чисел из m. Решается тривиально — обходим контейнер из m чисел и постоянно держим отсортированный контейнер из n наибольших чисел. После обхода находим сумму квадратов. Сложность будет O(m).

Честно, говоря, на с++ я даже не знаю как подобраться, не силен в этом языке.

боюсь у тебя проблема не с языком, а с пониманием алгоритма

Reset ★★★★★
()
Ответ на: комментарий от analimous

А что сложного то?

Да, совсем забыл. Читатель SICP к этому моменту знает только про подстановочную модель исполнения программы, про нормальный порядок применения аргументов, умеет определять свои функции и делать возврат значения по условию. Никакой стандартной библиотеки нет.

Сложность в малом числе доступных абстракций для выражения.

Попробуешь написать? Обещаю, будет интересно!

baverman ★★★
()
Ответ на: комментарий от baverman

про нормальный порядок применения аргументов

Дурья моя бошка! Аппликативный конечно же! Аргументы перед подстановкой вычисляются.

baverman ★★★
()
Ответ на: комментарий от baverman

ну и? суть в том, что «Никакой стандартной библиотеки нет.» ? тут опять же дело не в С++, а в фундаментальных знаниях, а для этого не sicp надо читать, а Кнута - гораздо полезней будет

Reset ★★★★★
()
Ответ на: комментарий от Reset

ну и?

Вообще то, это я должен спрашивать. Прошло черт знает сколько времени, а кода не видать.

Если он настолько прост, то хотя бы на пальцах объясните.

суть в том, что «Никакой стандартной библиотеки нет.» ? тут опять же дело не в С++, а в фундаментальных знаниях

Суть в том, что работа программиста — скомпоновать доступные абстракции для получения необходимого результата. Можете реализовать на любом удобном языке, с соответствующими ограничениями.

а для этого не sicp надо читать, а Кнута - гораздо полезней будет

Главное не книжки по С++. Хотя Кнута читал мельком — занудство.

baverman ★★★
()
Ответ на: комментарий от baverman

> Если он настолько прост, то хотя бы на пальцах объясните.

на пальцах я уже объяснил, если ты не в состоянии понять это объяснение, то советую тебе подучиться

Суть в том, что работа программиста — скомпоновать доступные абстракции для получения необходимого результата.

вот это противоречит этому:

Можете реализовать на любом удобном языке, с соответствующими

ограничениями.

нафига мне списки и деревья реализовывать, если они в stl есть?

Reset ★★★★★
()
Ответ на: комментарий от Reset

нафига мне списки и деревья реализовывать, если они в stl есть?

О, боже! В схеме тоже есть удобнейшие способы работы с различными структурами.

Давайте забудем про работу и поиграем с воображением. Рассматривайте эту задачу как головоломку. У нас есть только предложенные абстракции-кубики. Задача их собрать воедино. Разве это так сложно представить?

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

baverman ★★★
()
Ответ на: комментарий от baverman

> У нас есть только предложенные абстракции-кубики.

Какие именно?

Совсем как вы, уж простите.

Вы не знаете кто я и мою квалификацию, я могу обойтись без STL, ибо все эти стандартные структуры данных и алгоритмы реализовывал с нуля руками неоднократно.

Reset ★★★★★
()
Ответ на: комментарий от Reset

Какие именно?

Мы умеем определять функции.

Мы умеем вызывать функции (перед вызовом все аргументы вычисляются и передаются по-значению).

Есть также предопределенные арифметические функции (+ - * /).

И функция возвращающая значение в зависимости от условия — оператор элвиса (condition ? true_expr : false_expr). С той же семантикой — вычислено будет только возвращаемое выражение.

Вы не знаете кто я и мою квалификацию, я могу обойтись без STL, ибо все эти стандартные структуры данных и алгоритмы реализовывал с нуля руками неоднократно.

Прошу прощения за резкость. Кстати, не замечали, что это родовая травма программистов на с++? Каждый писал библиотеку для работы с коллекциями. Будучи студентом я тоже разработал великолепную библиотеку, там даже сбор мусора был! Но сейчас понимаю каким я был дураком. И причина только одна — стандартная библиотека просто уродлива и сложна для понимания новичками.

baverman ★★★
()
Ответ на: комментарий от Reset

нечестные требования, потому что в схему входит такая базовая структура как список

Про список еще не будет рассказываться страниц 50. Читатель о нем ничего не знает.

baverman ★★★
()
Ответ на: комментарий от baverman

То есть у него нет какого-либо средства получить n-ый аргумент функции.

baverman ★★★
()
Ответ на: комментарий от baverman

Это как это? Запись (a b c d) это уже список. А всякие car и cdr ? В общем, требования заточены исключительно под схему.

Reset ★★★★★
()
Ответ на: комментарий от Reset

Это как это? Запись (a b c d) это уже список.

С этого ни холодно ни жарко. Просто синтаксис такой, S-выражение.

А всякие car и cdr ?

Нет.

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

Реализовал на питоне. Пишу реализацию на C. Озвученные кубики есть в любом языке.

baverman ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.