Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 6728-й день

Шановні користувачі! Запрошуємо вас до офіційного телеграм-канала 0day Community. Тут ви зможете поспілкуватися одне з одним та дізнатися про останні новини щодо роботи ресурса, поставити запитання до адміністрації, тощо. Перейти до телеграм-канала можна відсканувавши QR-код або натиснувши на посилання: @zeroday_ua

 Подскажите, плиз, хорошую краткую книгу по С++

pasha4ur
Feb 19 2017, 10:38
  
Пост #1



Репутация:   17  
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
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
3 Страницы  < 1 2 3 >  
Reply to this topicStart new topic
Ответов(20 - 39)
pasha4ur
Feb 21 2017, 21:46
  
Пост #21



Репутация:   17  
Cтаршой
**

Группа: BANNED
Сообщений: 640
С нами с: 19-March 12


(-RC- @ Feb 21 2017, 20:57) Перейти к цитате

каким типом данных ты бы сохранял баланс счета кредитной карты?

наверное, long double (на случай триллиардов).

А учитывая, как языки программирования "круто" считают дробные части из-за двоичной системы хранения данных (в js 0.2+0.1 =
0.30000000000000004), то подумал бы о хранении в целочисленном виде в long double, при выводе делил на порядок что ли

Сообщение отредактировал pasha4ur - Feb 21 2017, 21:47
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-RC-
Feb 21 2017, 22:32
  
Пост #22



Репутация:   424  
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 проблема будет встречаться постоянно, особенно в финансовой сфере.
удели внимание этой теме, знания пригодятся

User is offlineProfile CardPM
Go to the top of the page
+Quote Post
pasha4ur
Feb 21 2017, 22:47
  
Пост #23



Репутация:   17  
Cтаршой
**

Группа: BANNED
Сообщений: 640
С нами с: 19-March 12


спасибо

удели внимание этой теме, знания пригодятся

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

не думаю, что я встряну в финансовую сферу. В вакансиях на джунов часто в реальности ищут мидлов и требования соответствующие.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
NigeL
Feb 22 2017, 18:22
  
Пост #24

Благодарности: 11010

Репутация:   297  
Постоялец
***

Группа: Пользователи
Сообщений: 1 899
С нами с: 1-August 09


Как там Столлман говорил, чтобы написать программу мне нужны только вещественные и указатели.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
pasha4ur
Feb 22 2017, 21:15
  
Пост #25



Репутация:   17  
Cтаршой
**

Группа: BANNED
Сообщений: 640
С нами с: 19-March 12


Сегодня всплыл давно отсутсвующий в скайпе знакомый и выдал:

» Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... «
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-RC-
Feb 22 2017, 21:51
  
Пост #26



Репутация:   424  
bifurcated person
*****

Группа: Пользователи
Сообщений: 6 519
С нами с: 24-December 08


лучше учиться на медика и валить забугор
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
NigeL
Feb 23 2017, 11:41
  
Пост #27

Благодарности: 11010

Репутация:   297  
Постоялец
***

Группа: Пользователи
Сообщений: 1 899
С нами с: 1-August 09


(-RC- @ Feb 22 2017, 21:51) Перейти к цитате

лучше учиться на медика и валить забугор

Лучше валить за бугор и там учиться на медика. Ещё проще - на фармаколога.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
pasha4ur
Feb 23 2017, 12:09
  
Пост #28



Репутация:   17  
Cтаршой
**

Группа: BANNED
Сообщений: 640
С нами с: 19-March 12


Я в школе учился в медицинском классе (побеждал на олимпиадах). С меня хватило. smile.gif

Типы данных в С++ выносят мозг.

Вчера ночью читал про 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


Open in new window

Сообщение отредактировал pasha4ur - Feb 23 2017, 12:14
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Console
Feb 26 2017, 23:23
  
Пост #29



Репутация:   498  
ultra active user
******

Группа: Пользователи
Сообщений: 11 281
С нами с: 23-March 08


(-RC- @ Feb 21 2017, 22:32) Перейти к цитате

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

Мне кажется что типы данных одна из тех очеень важных ступенек без которой совсем плохо.. yes.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
pasha4ur
Feb 27 2017, 11:18
  
Пост #30



Репутация:   17  
Cтаршой
**

Группа: BANNED
Сообщений: 640
С нами с: 19-March 12


Разве что в с++

Тут столько типов и нюансов.

Например, нельзя сравнить массивы или строки с помощью оператора ==, потому что и строки (массив знаков), и массивы в С++ являются указателями на ячейку памяти со значением первого элемента в них.


Книга запутанная. В разделе о циклах препод рассказывал страниц 20 о разных режимах, а потом про различные реализациях эмуляции конца файла в консолях. Хотя до этого рассказывал о cin в разделе про типы данных.

Дальше раздел про условия и ветвления и там снова что-то левое будет. Уже вижу в главе:
The cctype library of character functions
Number-reading loops
Basic file input/output
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
pasha4ur
Mar 3 2017, 23:34
  
Пост #31



Репутация:   17  
Cтаршой
**

Группа: BANNED
Сообщений: 640
С нами с: 19-March 12


В общем, прочитал 6 глав. Не очень понравился язык. Какой-то каменный век, где даже 2 строки (char *) нельзя сравнить между собой без функции.

Познакомился с гейм программистом, который работал с несколькими движками. Он сказал, что в Украине и вообще юнити более популярный. Особенно на мобилках. И комьюнити больше.

Попробую С# и Unity. Тем более js я уже знаю

Сообщение отредактировал pasha4ur - Mar 3 2017, 23:37
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-RC-
Mar 4 2017, 0:23
  
Пост #32



Репутация:   424  
bifurcated person
*****

Группа: Пользователи
Сообщений: 6 519
С нами с: 24-December 08


В общем, прочитал 6 глав. Не очень понравился язык. Какой-то каменный век, где даже 2 строки (char *) нельзя сравнить между собой без функции.

strcmp нормально юзается.

просто сложно бэкэнд делать высокопроизводительный.
а когда еще распределенные системы...да под высокой нагрузкой
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
pasha4ur
Mar 4 2017, 0:37
  
Пост #33



Репутация:   17  
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
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-RC-
Mar 4 2017, 10:57
  
Пост #34



Репутация:   424  
bifurcated person
*****

Группа: Пользователи
Сообщений: 6 519
С нами с: 24-December 08


в java те же яица.

это нормально, иногда нужно сравнивать ссылки, а не содержимое объектов
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
pasha4ur
Mar 4 2017, 11:06
  
Пост #35



Репутация:   17  
Cтаршой
**

Группа: BANNED
Сообщений: 640
С нами с: 19-March 12


Я сейчас очень быстро пробегаю по книги с++. За утро уже 80 страниц.

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

Вернуть массив или строку нельзя. Опять указатели и велосипеды из-за них.

В общем, я бы не хотел с таким иметь дело.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-RC-
Mar 4 2017, 11:12
  
Пост #36



Репутация:   424  
bifurcated person
*****

Группа: Пользователи
Сообщений: 6 519
С нами с: 24-December 08


в других языках аналогичные костыли.

с++ норм язык, если писать на нем
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
pasha4ur
Mar 4 2017, 11:27
  
Пост #37



Репутация:   17  
Cтаршой
**

Группа: BANNED
Сообщений: 640
С нами с: 19-March 12


в php и js уж точно таких костылей я не видел smile.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
kap1ec
Mar 4 2017, 23:09
  
Пост #38



Репутация:   145  
Постоялец
***

Группа: Пользователи
Сообщений: 1 094
С нами с: 18-March 09


(pasha4ur @ Mar 4 2017, 11:27) Перейти к цитате

в php и js уж точно таких костылей я не видел smile.gif

Сравниваете отвертку и перфоратор.
Забрасывать С++ т.к. Вам не понравилось как сравниваются строки это сильно. К слову, для таких случаев std::string существует. Ну да ладно.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-RC-
Mar 5 2017, 0:38
  
Пост #39



Репутация:   424  
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;
}


ладно бы за такие конструкции еще
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
pasha4ur
Mar 5 2017, 1:07
  
Пост #40



Репутация:   17  
Cтаршой
**

Группа: BANNED
Сообщений: 640
С нами с: 19-March 12


Это был лишь пример.

Лично мне идеология с++ не зашла. Я из тех, кто хочет просто отправить в функцию многомерный массив 1 аргументом, обработать и вернуть обратно тоже массив (или строку), а не страдать с велосипедами из указателей и аргументов длин массивов. pardon.gif

Для embedded, наверное, идеология с++ хороша в плане контроля озу и прочего. Но я не хочу страдать такой камасутрой. Меня все знакомые итшники отговаривают.

За сегодня прочитал и немного законспектировал 160 страниц. Но читаю уже не напряжно, для ознакомления и конспектирую базу. Кое-что пригодится и в других яп. Например, что большие объёмы данных лучше передавать по ссылке, чтобы не тратить ресурсы на создание копии.

Templates начало прочитал и записал для чего и как, но, когда там пошли простыни кода с указателями, адресами, ссылками, то забил. Понадобится - нагуглю.

Ещё, наверное, прочитаю про неймспейсы, объекты, классы, наследования - страниц 200-300 - и хватит.


В будущем попробую c# для unity. Посоветовали курс от itvdn

Сообщение отредактировал pasha4ur - Mar 5 2017, 1:08
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

3 Страницы  < 1 2 3 >
Reply to this topicStart new topic

 



- Упрощённая версия
Сейчас: 16th August 2024 - 5:02
Сайт не розміщує електронні версії творів, а займається лише колекціонуванням та каталогізацією посилань, що публікуються нашими користувачами. Якщо Ви є правовласником якоїсь частини опублікованого матеріалу та не бажаєте, щоб посилання на нього знаходилось в нашому каталозі, зв’яжіться з нами і ми видалимо його. Файли для обміну надані користувачами сайту і адміністрація не несе відповідальності за їх вміст.