Форум программистов, компьютерный форум CyberForum.ru

Какую книгу из приведенного списка стоит прочесть? - C++

Восстановить пароль Регистрация
Другие темы раздела
SFML Sfml, как вставить картинку? http://www.cyberforum.ru/cpp-beginners/thread1236397.html
2д игра, как заместь закрешеных блоков поместить туда тайл, ну то есть картинку в rectangle.setFillColor(Color::Black); void Map::loadmap(String TileMap,float offsetX, float offsetY) { RectangleShape rectangle( Vector2f(64, 64)); for (int i=0; i<H; i++) for (int j=0; j<W ; j++)
C++ Сократить количество символов кода #include <fstream> using namespace std; int main(){ifstream f("input.txt"); ofstream c("output.txt"); int a,m,q,r=0; f>>a; for(int i=0;i<a;i++) {f>>m; }f>>q; while(q) http://www.cyberforum.ru/cpp-beginners/thread1236372.html
C++ Как по-настоящему обучиться c++ без привязок(винапи,.) то есть чистому языку но и не консоли
Пожалуйста гугл не предлагайте и прочую хрень))) просто вопрос не типа как в Windows Form вызвать 2ю форму а конкретно
C++ Простой консольный конвертер валют - проверить корректность реализации
Всем привет! Я новичок на вашем форуме, как и в C++. Изучаю его третий день. Вот решил подкрепить свои знания и написать простенький конвертер валют. Думаю, что я его еще буду усовершенствовать, а пока гляньте на мой код. (Наверно, я совсем быдлокодер:-#include <iostream> using namespace std; void usd_rub(); void usd_eur(); void rub_usd(); void rub_eur(); void eur_usd(); void eur_rub();
C++ Почему выводит неверный результат при вычислении произведения? http://www.cyberforum.ru/cpp-beginners/thread1236300.html
Еще 1 вопрос из разряда нубских: #include<iostream> #include<cmath> using namespace std; int main() { setlocale(0, ""); int n,N; double s=1; cout<<"Ââåäèòå ãðàíèöó ïðîèçâåäåíèÿ N= ";
C++ Изменение каждого бита WAV-файла - файл "портится" Нагуглил здесь https://ccrma.stanford.edu/courses/422/projects/WaveFormat/ что данные в формате wav начинаются с 44 байта. Из файла я получаю байтовый массив. Изменяю младший бит, например, в первом байте данных, то есть в 44-ом, сохраняю файл, но он уже не воспроизводится. Не могу разобраться с этой структурой. Может кто шарит в этом? Мне нужно в каждом байте данных изменить младший бит так,... подробнее

Показать сообщение отдельно
gru74ik
Модератор
 Аватар для gru74ik
3124 / 1350 / 167
Регистрация: 20.02.2013
Сообщений: 3,867
Записей в блоге: 18
31.07.2014, 09:42     Какую книгу из приведенного списка стоит прочесть?
Цитата Сообщение от Ouroboros-SK Посмотреть сообщение
Программирование:принципы и практика использования C++, исправленное издание автор.Бьерн Страуструп
Может и правда хорошая книга для начала с нуля, но вот именно эту не читал, поэтому врать не буду. Пусть выскажутся те, кто читал.

Цитата Сообщение от Ouroboros-SK Посмотреть сообщение
Язык программирования С++(спец.изд) автор. Бьерн Страуструп
А вот эта у меня есть, куплена недавно в бумажном варианте. И вот что скажу. Начинать с этой книги с нуля, это примерно как первокласснику сразу пытаться системы квадратных уравнений втолковать.
Вначале всё будет хорошо. Страуструп начинает довольно бодро, с общефилософских замечаний по поводу программирования вообще, ООП в частности и С++ в особенности. Первые сомнения появятся, я думаю, на 50-й странице, когда новичок прочтёт вот это:
Кликните здесь для просмотра всего текста

1.6.1. Информация для С-программистов
Чем лучше вы знакомы с С, тем труднее вам будет удержаться от соблазна писать
на C++ в стиле С, теряя тем самым многие преимущества C++. Пожалуйста,
ознакомьтесь с приложением В, в котором перечисляются все различия между С и C++.
Вот некоторые вещи, с которыми C++ справляется лучше, чем С:
1. Макросы менее необходимы в C++. Используйте const (§5.4) или enum (§4.8)
для объявления констант, inline (§7.1.1) — чтобы избежать накладных
расходов на вызов функции, шаблоны (глава 13) — для определения семейств
функций и типов, и namespace (§8.2) для преодоления коллизии имен.
2. Объявляйте переменные только тогда, когда они потребуются и тотчас же
инициализируйте их. В языке C++ объявление допустимо всюду, где может
стоять оператор (§6.3.1), в инициализирующих выражениях в операторе
цикла for (§6.3.3) и в условиях (§6.3.2.1).
3. Не применяйте malloc(). Операция new (§6..2.6) работает лучше. Вместо
realloc() попробуйте тип vector (§3.8, §16.3).
4. Старайтесь избегать void*, арифметики указателей, объединений, явных
приведений типа кроме как глубоко внутри реализаций функции или класса.
В большинстве случаев явное приведение типов свидетельствует о дефектах
проектирования. Если преобразование все же нужно, применяйте одну из
новых операций приведения (§6.2.7), которые точнее отражают ваши
намерения.
5. Минимизируйте применение массивов и строк в С-стиле — стандартные
библиотечные типы string (§3.5) и vector (§3.7.1) заметно упрощают
программирование. В целом, не пытайтесь программировать самостоятельно то, что
уже запрограммировано в стандартной библиотеке.

Но может быть наш новичок окажется в принципе искушённым читателем? Тогда, зная, что не всякое понимание приходит сразу, он отложит понимание этих терминов на более поздний период. К тому же, Страуструп пишет же, что информация для С программистов, а мы тут С++ собрались изучать, так что смело пропускаем. Успокоив себя таким образом, самоотверженный новичок продолжит чтение. Но уже со страницы 61 он начнёт подбуксовывать.
Обилие кода, скупые объяснения автора, стиль "ну вот тут так, тут вот эдак, в общем вы и сами понимаете" очень быстро вгонят даже очень прилежного новичка в ступор.
А почему? Да потому что книга Страуструпа для С++-программиста - это, конечно, Библия, Веды, Старшая и Младшая Эдда, Коран и Авеста вместе взятые. Но написана она не для новичков, а для тех, кто уже довольно неплохо знаком с основами С++.

Начинать со Страуструпа , на мой взгляд, не лучшее решение.

Добавлено через 5 минут
...
 
Текущее время: 21:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru