Несколько вопросов C++ и ООП в целом?

Здравствуйте, хочу задать несколько вопросов.

1. Посоветуйте хорошие уроки по классам и ООП в C++. Ни Лафоре, ни Страуструпп не подходят.

2. Актуальны ли в наши время указатели?

3. Что учить дальше? WinApi? Qt (по-моему наилучший вариант)?

P.S. Еще маленький вопрос по GitHub.

Что загружают в GitHub? Исходники, или можно просто .exe? Можно ли хостить не open-source проект?
  • Вопрос задан
  • 6857 просмотров
Решения вопроса 1
master1312
@master1312
1. «Стивен Прата. Язык программирования C++. Лекции и упражнения» — офигенная книжка по плюсам в целом. К тому же там есть описание изменений в стандарте С++11. По ООП — однозначно Буч, присоединяюсь к z3apa3a.
2. Однозначно да.
3. Qt — штука хорошая, так как довольно простая, многофункциональная и кроссплатформенная. Его имеет смысл поизучать. А WinAPI я бы посоветовал специально не изучать, но поискать источники информации, чтобы, если под какие-то конкретные задачи понадобится, можно было быстро найти то, что нужно.
Ответ написан
Пригласить эксперта
Ответы на вопрос 7
1.Мне в свое время сильно помог Гради Буч, «Объектно-ориентированный анализ и проектирование»
2. Да
3. Если нет представлений о том, чем хотите заниматься дальше, то поставьте перед собой любую практическую задачу и учите то, что необходимо для ее реализации. Начните с простеньких, постепенно усложняйте.
Ответ написан
Комментировать
nazarpc
@nazarpc
Open Source enthusiast
На GitHub обычно загружают исходники, там же репозитории с системой контроля версий этого самого исходного кода, для exe это по-моему не применимо.
Можно хостить не Open Source, но за закрытые репозитории нужно платить. BitBucket позволяет иметь до 5 закрытых репозиториев бесплатно.
Ответ написан
@broken
1. Не знаю как Вы, но я сам хожу по магазинам и просматриваю книги, а не слушаю чьи-то отзывы (ну, редко, признаюсь, слушаю). Смотрю — подходит ли мне книга, отвечает ли она на те мои вопросы, на которые я хочу с помощью этой книги найти ответы. Поэтому просто ищите любые книжки по C++ и просматривайте их. И, признаться, если вам ни страуструп(ну ладно, он тяжеловат новичкам), ни даже Лафоре не подошли, то я не знаю, что вам посоветовать.

2. Актуальны как никогда. С чего вообще вы взяли, что они могут быть неактуальны? Прочитали немного про ссылки и все?

3. Советую WinAPI до ПОЛНОГО понимания что и как работает. Я, например, написал полноценный менеджер загрузок, почти копия flashget по всем параметрам. Пока не сделаешь что-то похожее по трудности, не советую изучать Qt. Qt — это по сложности похож C++ Builder/Delphi, на мой взгляд. А в WinAPI ты каждый кусочек кода должен контролировать сам, создавать ресурсы, и т.д. Кстати, советую не пользоваться редакторами форм и прочей фигней, пиши все только кодом. Тогда получишь profit. А то как обычно пишут: «Я знаю C++. Пишу в C++ Builder.» или названия книг — «C++ за 3 дня» и так далее
Ответ написан
akalenuk
@akalenuk
1. С++ не совсем про ООП. Про ООП можно почитать Design Patterns, например. Там Джава, но это не страшно. Буча еще, да. Мне, например, чтобы понять кайф ООП, помогло не чтение, а практика на Objective-C. Там просто не получается писать без правильного ООП, в отличие от С++. А про С++ я бы все-таки советовал держаться Страуструпа и догоняться Мейерсом и Саттером.

2. Указатели в классическом понимании — нет. Ну то есть как. Знать, понимать и уметь — актуально, применять в реальном коде — спасибо, не надо. Только уникальные, разделяемые и слабые.

3. Qt, да, почему бы нет. WinApi — не уверен. Лучше уж .NET тогда и смотерть в сторону управляемого кода. На С++ можно и так в принципе. Можно еще посмотреть wxWidgets или Tk. Или, например, Mamrmalade SDK или Cocos-2Dx.
Ответ написан
RUVATA
@RUVATA
Разработчик, гик, меломан, разгильдяй
  1. Исходя из вопросов которые Вы задаете, а самое главное — как вы их сформулировали — В первую очередь Вам надо определиться с целью которую Вы перед собой поставили — «Почему C++?».
    Если всё таки C++, то почему Вам не подходит Страуструпп?

  1. Все зависит от задач решаемых на С++ и в первую очередь от целевой платформы, если для встраиваемых систем и не дай бог кристаллов то — обязательно, если под ПК — то наоборот

  1. Qt — это в первую очередь интерфейсы. Так вам логику писать или интерфейсы ?

Ответ написан
romy4
@romy4
Exception handler
1. С++ вводный курс — Липпман
2. Указатели — основа основ и неотъемлемая часть плюсов.
3. По-моему изучать надо в первую очередь Boost. Не просто так из него в стандарт переходят некоторые решения. И далее платформозавизиме фреймы по необходимости.
Ответ написан
Комментировать
pelment
@pelment
1. Уроки по классам… именно по классам? Присоединяюсь к совету про Pattern Design. Я в свое время начал заниматься по довольно глупым книжкам типа «С++ за три дня» с заданиями. Они глупые и мало дают, но простые и с них можно начинать. Со Страуструпа начить не стоит — он вообще скорее справочное руководство, которое не читаешь целиком, а по необходимости исследуешь подробно те или иные куски.
2. Указатели более чем актуальны. Без них вообще никуда. С ними обязательно надо уметь грамотно обращаться.
3. Присоединяюсь к совету про задачи. Поставить себе задачу и исследовать, что с ней связано. Без конкретной задачи велик риск закопаться в функционале, а изучать его просто так — значит забить голову зря и забыть все в ближайшее время. Выход — тьюториалы по конкретным технологиям, но их я посоветовать не могу, именно С++ по ним не учил. Можете попробовать прикручивать разные движки, библиотеки, которые делают что-то интересное. По ним обычно есть руководство, как их прикрутить, и это очень полезно. Пописать велосипеды алгоритмические тоже можно. Есть толк в изучении последних стандартов С++. Умные указатели и все такое.
4. Про Github — закрытые репозитории стоят денег, хоть и небольших. Bitbucket для этого дела проще, да и там можно выбрать другую систему контроля версий (Merkurial), хотя я все-таки предпочитаю Git. На работе используем Bitbucket, дома использую Github для задач, которыми планирую с кем-то делиться (совета спросить, оценку дать, помочь и так далее).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы