Подскажите, плиз, хорошую краткую книгу по С++ |
Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 6728-й день
![]() |
Шановні користувачі! Запрошуємо вас до офіційного телеграм-канала 0day Community. Тут ви зможете поспілкуватися одне з одним та дізнатися про останні новини щодо роботи ресурса, поставити запитання до адміністрації, тощо. Перейти до телеграм-канала можна відсканувавши QR-код або натиснувши на посилання: @zeroday_ua |
Подскажите, плиз, хорошую краткую книгу по С++ |
pasha4ur |
![]()
Пост
#1
|
Репутация: ![]() ![]() Cтаршой ![]() ![]() Группа: BANNED Сообщений: 640 С нами с: 19-March 12 ![]() |
Здравствуйте
Случайно наткнулся на распродажу курса по Unreal Engine Game development. Там С++ немного будут объяснять, но хочу сперва сам чуть его изучить. Подскажите, плиз, небольшую книжку по нему. Можно на англ. Знаком без особого опыта с php, js. Я нашел: Beginning C++ Through Game Programming / Изучаем С++ через программирование игр - отзывы плохие И очень большие (1000+ страниц) Programming: Principles and Practice Using C++ 2014 (2300 страниц, но нашел и на 1300) - пока лучшая по описанию, но здоровая C++ Primer 5th Edition (1000, 2012 год) Смотрел здесь и еще в 1 месте: https://tproger.ru/books/cpp-books-definitive-guide/ Сообщение отредактировал pasha4ur - Feb 19 2017, 10:59 |
![]() ![]() |
pasha4ur |
Пост
#21
|
Репутация: ![]() ![]() Cтаршой ![]() ![]() Группа: BANNED Сообщений: 640 С нами с: 19-March 12 ![]() |
каким типом данных ты бы сохранял баланс счета кредитной карты? наверное, long double (на случай триллиардов). А учитывая, как языки программирования "круто" считают дробные части из-за двоичной системы хранения данных (в js 0.2+0.1 = 0.30000000000000004), то подумал бы о хранении в целочисленном виде в long double, при выводе делил на порядок что ли Сообщение отредактировал pasha4ur - Feb 21 2017, 21:47 |
-RC- |
Пост
#22
|
Репутация: ![]() ![]() bifurcated person ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 519 С нами с: 24-December 08 ![]() |
А учитывая, как языки программирования "круто" считают дробные части из-за двоичной системы хранения данных (в js 0.2+0.1 = 0.30000000000000004), то подумал бы о хранении в целочисленном виде в long double, при выводе делил на порядок что ли ну тут проблема не в языках. я просто хотел акцентировать внимание на типах данных и их комбинациях. например иногда создают создают структуру типа Money с двумя переменными для целой и дробной части. везде как пример предлагают статью http://docs.oracle.com/cd/E19957-01/806-35...g_goldberg.html round-off проблема будет встречаться постоянно, особенно в финансовой сфере. удели внимание этой теме, знания пригодятся |
pasha4ur |
Пост
#23
|
Репутация: ![]() ![]() Cтаршой ![]() ![]() Группа: BANNED Сообщений: 640 С нами с: 19-March 12 ![]() |
спасибо
удели внимание этой теме, знания пригодятся Я больше для движка Unreal читаю. Возможно, там и не надо прямо супер его знать. не думаю, что я встряну в финансовую сферу. В вакансиях на джунов часто в реальности ищут мидлов и требования соответствующие. |
NigeL |
Пост
#24
|
Благодарности: 11010 Репутация: ![]() ![]() Постоялец ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 899 С нами с: 1-August 09 ![]() |
Как там Столлман говорил, чтобы написать программу мне нужны только вещественные и указатели.
|
pasha4ur |
Пост
#25
|
Репутация: ![]() ![]() Cтаршой ![]() ![]() Группа: BANNED Сообщений: 640 С нами с: 19-March 12 ![]() |
Сегодня всплыл давно отсутсвующий в скайпе знакомый и выдал:
» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « |
-RC- |
Пост
#26
|
Репутация: ![]() ![]() bifurcated person ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 519 С нами с: 24-December 08 ![]() |
лучше учиться на медика и валить забугор
|
NigeL |
Пост
#27
|
Благодарности: 11010 Репутация: ![]() ![]() Постоялец ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 899 С нами с: 1-August 09 ![]() |
|
pasha4ur |
Пост
#28
|
Репутация: ![]() ![]() Cтаршой ![]() ![]() Группа: BANNED Сообщений: 640 С нами с: 19-March 12 ![]() |
Я в школе учился в медицинском классе (побеждал на олимпиадах). С меня хватило.
![]() Типы данных в С++ выносят мозг. Вчера ночью читал про Enumerators. В общем, структура, которая хранит в себе именованные константы, которые обычно на 1 инкрементируются. Все должны быть уникальными и переменной назначаться только задекларированные знаковые значения. А дальше автора книги как понесло: enum spectrum {red, orange, yellow, green, blue, violet, indigo, ultraviolet}; spectrum band; band = orange + red; int color = blue; color = 3 + red; enum {zero, null = 0, one, numero_uno = 1}; // несколько констант равны одному значению. Зачем? enum bits{one = 1, two = 2, four = 4, eight = 8}; bits myflag; myflag = bits(6); // valid, because 6 is in bits range ![]() Сообщение отредактировал pasha4ur - Feb 23 2017, 12:14 |
Console |
Пост
#29
|
Репутация: ![]() ![]() ultra active user ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 11 281 С нами с: 23-March 08 ![]() |
|
pasha4ur |
Пост
#30
|
Репутация: ![]() ![]() Cтаршой ![]() ![]() Группа: BANNED Сообщений: 640 С нами с: 19-March 12 ![]() |
Разве что в с++
Тут столько типов и нюансов. Например, нельзя сравнить массивы или строки с помощью оператора ==, потому что и строки (массив знаков), и массивы в С++ являются указателями на ячейку памяти со значением первого элемента в них. Книга запутанная. В разделе о циклах препод рассказывал страниц 20 о разных режимах, а потом про различные реализациях эмуляции конца файла в консолях. Хотя до этого рассказывал о cin в разделе про типы данных. Дальше раздел про условия и ветвления и там снова что-то левое будет. Уже вижу в главе: The cctype library of character functions Number-reading loops Basic file input/output |
pasha4ur |
Пост
#31
|
Репутация: ![]() ![]() Cтаршой ![]() ![]() Группа: BANNED Сообщений: 640 С нами с: 19-March 12 ![]() |
В общем, прочитал 6 глав. Не очень понравился язык. Какой-то каменный век, где даже 2 строки (char *) нельзя сравнить между собой без функции.
Познакомился с гейм программистом, который работал с несколькими движками. Он сказал, что в Украине и вообще юнити более популярный. Особенно на мобилках. И комьюнити больше. Попробую С# и Unity. Тем более js я уже знаю Сообщение отредактировал pasha4ur - Mar 3 2017, 23:37 |
-RC- |
Пост
#32
|
Репутация: ![]() ![]() bifurcated person ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 519 С нами с: 24-December 08 ![]() |
В общем, прочитал 6 глав. Не очень понравился язык. Какой-то каменный век, где даже 2 строки (char *) нельзя сравнить между собой без функции. strcmp нормально юзается. просто сложно бэкэнд делать высокопроизводительный. а когда еще распределенные системы...да под высокой нагрузкой |
pasha4ur |
Пост
#33
|
Репутация: ![]() ![]() Cтаршой ![]() ![]() Группа: BANNED Сообщений: 640 С нами с: 19-March 12 ![]() |
Для меня нормально и естественно это if (str1 == str2), а не if (!strcmp(str1, str2)).
Я пока не готов к такому сексу. Я знаю, что это можно сделать классом string, но хочется ближе уже к современным простым языкам, где ты думаешь над реализацией идеи, а не борешься с реализацией алгоритмов в языке. Посоветовали C# Starter ITVDN. На крайний случай можно делать 3д модели и продавать их в Unity store. Большое спасибо всем за уделенное время и помощь. П.С. По c# тема для новичков что-то заглохла. Сообщение отредактировал pasha4ur - Mar 4 2017, 0:40 |
-RC- |
Пост
#34
|
Репутация: ![]() ![]() bifurcated person ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 519 С нами с: 24-December 08 ![]() |
в java те же яица.
это нормально, иногда нужно сравнивать ссылки, а не содержимое объектов |
pasha4ur |
Пост
#35
|
Репутация: ![]() ![]() Cтаршой ![]() ![]() Группа: BANNED Сообщений: 640 С нами с: 19-March 12 ![]() |
Я сейчас очень быстро пробегаю по книги с++. За утро уже 80 страниц.
В общем, странный язык. Из-за этих указателей столько геморроя. В ту же функцию нужно передавать массив и его длину или конец, а если массив многомерный, то уже проблемы. Вернуть массив или строку нельзя. Опять указатели и велосипеды из-за них. В общем, я бы не хотел с таким иметь дело. |
-RC- |
Пост
#36
|
Репутация: ![]() ![]() bifurcated person ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 519 С нами с: 24-December 08 ![]() |
в других языках аналогичные костыли.
с++ норм язык, если писать на нем |
pasha4ur |
Пост
#37
|
Репутация: ![]() ![]() Cтаршой ![]() ![]() Группа: BANNED Сообщений: 640 С нами с: 19-March 12 ![]() |
в php и js уж точно таких костылей я не видел
![]() |
kap1ec |
Пост
#38
|
Репутация: ![]() ![]() Постоялец ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 094 С нами с: 18-March 09 ![]() |
|
-RC- |
Пост
#39
|
Репутация: ![]() ![]() bifurcated person ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 519 С нами с: 24-December 08 ![]() |
#include <iostream> template<typename T> struct A { typedef int R(); template<typename U> static U *f(int) { return 0; } static int f() { return 0; } }; template<typename T> bool g() { A<T> a; return !(typename A<T>::R*)a.f<int()>(0); } template<typename T> bool h() { A<T> a; return !( A<T>::R*)a.f<int()>(0); } int main() { std::cout << g<void>() << f<void>() << std::endl; } ладно бы за такие конструкции еще |
pasha4ur |
Пост
#40
|
Репутация: ![]() ![]() Cтаршой ![]() ![]() Группа: BANNED Сообщений: 640 С нами с: 19-March 12 ![]() |
Это был лишь пример.
Лично мне идеология с++ не зашла. Я из тех, кто хочет просто отправить в функцию многомерный массив 1 аргументом, обработать и вернуть обратно тоже массив (или строку), а не страдать с велосипедами из указателей и аргументов длин массивов. ![]() Для embedded, наверное, идеология с++ хороша в плане контроля озу и прочего. Но я не хочу страдать такой камасутрой. Меня все знакомые итшники отговаривают. За сегодня прочитал и немного законспектировал 160 страниц. Но читаю уже не напряжно, для ознакомления и конспектирую базу. Кое-что пригодится и в других яп. Например, что большие объёмы данных лучше передавать по ссылке, чтобы не тратить ресурсы на создание копии. Templates начало прочитал и записал для чего и как, но, когда там пошли простыни кода с указателями, адресами, ссылками, то забил. Понадобится - нагуглю. Ещё, наверное, прочитаю про неймспейсы, объекты, классы, наследования - страниц 200-300 - и хватит. В будущем попробую c# для unity. Посоветовали курс от itvdn Сообщение отредактировал pasha4ur - Mar 5 2017, 1:08 |
![]() ![]() |
![]() |
Упрощённая версия | Сейчас: 16th August 2024 - 5:02 |
Сайт не розміщує електронні версії творів, а займається лише колекціонуванням та каталогізацією посилань, що публікуються нашими користувачами. Якщо Ви є правовласником якоїсь частини опублікованого матеріалу та не бажаєте, щоб посилання на нього знаходилось в нашому каталозі, зв’яжіться з нами і ми видалимо його. Файли для обміну надані користувачами сайту і адміністрація не несе відповідальності за їх вміст. |