LINUX.ORG.RU
решено ФорумTalks

[програмирование][учить]C++ + Qt.


0

0

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

Вопрос - как к этому лучше всего подступиться?
Кое что в программировании в принципе я понимаю (понятия функции, цикла и тому подобного, необходимости понятного кода ну и т.п.). Однако знаний ни в C ни в C++ нет никаких.
Начать с C++ в целом, а потом, после того, как разберусь как оно вообще работает, смотреть уже документацию/книги по Qt?

Или как?

Посоветуйте.

P.S. выбрать другой язык не советуйте - что изучать для себя я уже решил, теперь надо понять как это изучать.

Ответ на: комментарий от Boy_from_Jungle

>не видел чтобы в сис. программирование использовали С++

смотря, что считать системным программированием. Компиляторы пишут, например)

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

>А при переходе к плюсам это всё можно выкинуть.

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

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

> ну объясни же нам, что в этом простом случае происходит, и почему оно происходит именно так?

в этой фразе про С++ ничего не было

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

> и чем же С++ (без ассемблерных вставок) привязан к железу? перекомпиль и радуйся

я не о том, когда вы пишете «register int a = 1;» в С++, или описываете структуру + выравнивания данных, или оперируете указателями и т.п. - это и есть та самая привязка к железу, да и если запустить gcc с флагом -s - то связь между кодом на С/С++ и ассемблером можно будет явно увидеть для циклов, выражений и т.п.

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

> я их не сравниваю - я указываю, что эти языки так или иначе привязаны к «железу» сами по себе, в отличие от других

и хорошо. а то бы я посмотрел на игру на питоне

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

> нет, это само MFC криво и жутко

А я тогда был маленький и глупый, инета не было, на дворе был еще 20 век

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

> А кто вас заставляет привзываться к выравниваюнию и тд?

обычная структура точно также ложится в память, только если не указать выравнивание - будет использоваться выравнивание по-умолчанию, а так данные тоже явно лягут в память и можно получить указатель на любой элемент

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

в этой фразе про С++ ничего не было

> С++ - это не функциональный язык, не ООП( в полной мере ), это С с «сахарком»

А вот не правда. ООП свой. Но тоже полноценный

ООП есть? есть. ещё и полноценное. в чём проблема?

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

> Ну на яве же есть.

джава вроде намного быстрее питона, нет?

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

> обычная структура точно также ложится в память

Да. С определеным правиламы выравнивания. Чем хуже то, что сделано в C++

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

> Ну на яве же есть.

Да. Они графику хотя бы уровня Fallout обеспечивают?

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

У нее на питоне написан движок?

«Python enabled us to create EVE Online, a massive multiplayer game, in record time. The EVE Online server cluster runs over 50,000 simultaneous players in a shared space simulation, most of which is created in Python. The flexibilities of Python have enabled us to quickly improve the game experience based on player feedback» said Hilmar Veigar Petursson of CCP Games.

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

> Да. С определеным правиламы выравнивания. Чем хуже то, что сделано в C++

не понял, что хуже в С++ и почему?

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

Я про клиент говорил и графику. Мы сами на питоне пишем масштабируемые высоконагруженные решения. Это уже другой вопрос

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

> не понял, что хуже в С++ и почему?

Вам не нравится, что С++ выравнивает переменные, как ему хочется. Почему?

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

> Вам не нравится, что С++ выравнивает переменные, как ему хочется. Почему?

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

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

Я про клиент говорил и графику

исходники, увы, закрыты. можно поискать по dev-blog'ам - как именно они работают с графикой. в любом случае, большая часть игры (очень немаленькой и высококачественной игры) написана именно на Stackless Python

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

> большая часть игры (очень немаленькой и высококачественной игры) написана именно на Stackless Python

А мне кажеться, что на нем написана только логика

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

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

У меня не бывает, ЧЯДНТ?

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

>или оперируете указателями и т.п. - это и есть та самая привязка к железу

Что значит «оперируете»? А ссылки - это тоже привязка? Тогда, наверно, и то, что вместо ссылок у жабы - тоже привязка?

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

> учи сначала С

Нафига? Сразу плюсы учить нада. Потом на Qt переходить.

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

> Да. Кончено. Любой скомпилированый для машину код привязан к машине

разницу между языком и «выхлопом» компилятора не видим, да?

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

> разницу между языком и «выхлопом» компилятора не видим, да?

Это вы не видете, если считаете С++ привязаным к машине

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

> Это вы не видете, если считаете С++ привязаным к машине

у тебя по сути что есть, или дальше фантазии свои будешь рассказывать?

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

>> разницу между языком и «выхлопом» компилятора не видим, да?

Это вы не видете, если считаете С++ привязаным к машине

sizeof(int) везде разный, так что не надо про отсутствие привязок.

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

>разницу между языком и «выхлопом» компилятора не видим, да?

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

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

Даже с Qt можно «потерять» память, я гарантирую это

annulen ★★★★★
()

Я бы не советовал начинать изучение с С++, не имея знаний о «чистом» С. Почитай подбельского по сям. Потом по С++. Ну а уж потом, пробежавшись хотя бы по Шилдту, смотри в сторону Qt.

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

/me использует для счетчиков массивов и прочих индексов. Нет, размеры over9000 для меня не актуальны, восьмибитное железо тоже

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

> а в каком стандарте определены эти типы? по стандарту положены short и long

в С99, там же ремарка для С++, и да - эти типы тоже привязка к железу( кол-во бит и все-такое )

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

>для счётчиков есть size_t, но это обычно int.

Нет, не обычно. Используя int вместо size_t вы делаете программу бажной не получая ничего взамен. Вот у меня на самом обычном домашнем компе size_t - это unsigned long. Так вот вместо того, чтобы забивать голову такими тонкостями нужно просто использовать size_t там, где имеет ввиду размер (строки, структуры, вектора - пофиг).

Я уж молчу про использование int8 и тому подобной белиберды (если вы не работаете с оборудованием или сетью или общепринятыми форматами файлов, разумеется).

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