Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Литература по С++


Автор: alexmar 4.12.2002, 08:20
Привет всем!
Посоветуйте пожалуйста литературу (ссылки в инете) для программиста, желающего соскочить с иглы Clippera на С++.  Имеется в виду как описание самого языка, так и описание новых технологий. (COM, ActivX и т д.). Планируется разработка (перенесение с Clipper) бухгалтерского софта, работа с СУБД, разработка пользовательских интерфейсов.
И второй вопрос: Существует ли в С++ средство (библиотеки, технологии), позволяющие строить программу таким образом, чтобы при изменении базовой СУБД не приходилось переделывать код, отвечающий за взаимодействие с СУБД.
Извините, если эти вопросы уже встречались в форуме

Автор: podval 4.12.2002, 18:25
http://firststeps.ru/ здесь хоть и не книги, но уроки по MS Visual C++ и Borland C++ Builder.

http://www.helloworld.ru - а здесь с книжками.

Автор: Step 4.12.2002, 18:26
Основы Visual C++, Круглинского, сама книга по техналогиям, но в приложении есть описания языка.

Автор: alexmar 5.12.2002, 04:41
Спасибо за информацию по первому вопросу. А как насчет второго вопроса?

Автор: Fantasist 5.12.2002, 12:18
Цитата(alexmar @ 04.12.2002, 00:20)
Существует ли в С++ ....

В С++ возможно все (как и в других нормальных языках программирования). Все зависит от того, что вы умеете.

Автор: alexmar 6.12.2002, 18:48
Цитата(Fantasist @ 05.12.2002, 04:18)
В С++ возможно все (как и в других нормальных языках программирования). Все зависит от того, что вы умеете.

В С++ возможно все (как и в других нормальных языках программирования). Все зависит от того, что вы умеете.


Ответ слишком общий. Опыт программировния имеется, но на других языках (20лет) как и готовность изучать новое
Но предвидя, возможные проблемы по сопровождению программ и их перенастройки под другие СУБД, хотелось бы изначатьно выбрать правильную методологию их построения.

Автор: Fantasist 7.12.2002, 08:14
Хорошо, скажем так - в С++ нет никакой поддержки баз данных(имеется в виду стандартные библиотеки). Это просто язык программирования. Работа с базами данных производиться при помощи сторонних технологий предоставляющий некий API. Для виндос - это чаще всего динамические библиотеки, работающие непосредственно со "внутринностями" базы данных и они предоставляют(экспортируют) набор функций, которые пользователь может и использовать. Эти библиотеки часто называют драйверами СУБД. Есстественно, в реальном мире никто непосредственно на таком низком уровне не работает - пишутся специальные высокоуровневые библиотеки уже на конктретном языке (т.е. в нашем случае С++). Однако в наше время существуют технологии стандартизирующие интерфейс для работы с СУБД. Одна из самых первых популярных - это ODBC. Производители СУБД писали драйвера под ODBC, а разные умные люди писали библиотеки (т.е. набор классов и функций на том же С++) для работы с ODBC. В стандартной библиотеки Visual Studio вы найдете такие классы как CDatabase, CRecordset и др. - это как раз классы для работы с ODBC.  Теперь, с развитием ActiveX, выходит на первый план OLE DB и ADO (ActiveX Data Objects) как способ работы с ним. ADO - это тоже динамические библиотеки(dll), но содержащий не просто экспортируемые функции, а набор ActiveX компонентов. Теперь продвинутые производители СУБД пишут драйвера под OLE DB, а разные умные люди пишут библиотеки для работы с ADO. Правда, для Visual Studio я не видел никаких таких библиотек - видимо считается, что достадочно самих компонентов ADO и с ними надо работать как с обыкновенными ActiveX. Однако если вы выберете Inprise C++ Builder - то в нем существует набор компонентов оборачивающих ADO.

Надо отметить, что Microsoft так же предлагает DAO (Data Access Objects) - это вещь тоже появилась сравнительно давно, и представляет из себя так же набор ActiveX, но служит в который уже за hardcoded работа с некоторыми CУБД. То есть это не открытый стандарт - что микрософт туда записало, с тем только можно и работать. В Visual Studio существуют классы CDaoDatabase, CDaoRecordset и др. для работы с DAO. Надо сказать, что Microsoft активно реккомендует переходить с DAO на ADO, однако DAO пока до сих пор самое быстрое средство для работы с Excel документами.

Что касается надвигающегося .NET, то об этом я говорить не буду, однако там сделан существенный шаг в обеспечении удобной работы с ADO.

Все на .NET и ADO, господа!  :)

Автор: Fantasist 7.12.2002, 08:22
Цитата(alexmar @ 04.12.2002, 00:20)
И второй вопрос: Существует ли в С++ средство (библиотеки, технологии), позволяющие строить программу таким образом, чтобы при изменении базовой СУБД не приходилось переделывать код, отвечающий за взаимодействие с СУБД.

Да как раз по этому вопросу - это и есть любая технология стандартнизируящая интерфейс работы с CУБД. Первая была ODBC - однако она довольно ограниченна и не столь эффективна по сравнению с cегодняшним ADO. Так что ADO, если, конечно, целевая CУБД предоставляет драйвер. Но к С++ это не имеет ровным счетом никакого отношения.

Автор: alexmar 7.12.2002, 09:03
Спасибо за развернутый ответ

Автор: Ramstar 7.12.2002, 18:09
Попробуй кинигу Г.Шилда С++
не так чтобы очень хоршо описан сам язык как концепция объектно ориентированногго программированя также хоршо расммотрены ттеория шаюлонов и работа с контейнирами ну заодно классы некоторые интересны расмотрены

Автор: Fantasist 8.12.2002, 04:59
Если по С++, то вначале лучше обычную книжку для начинающих, чтобы разобраться в синтаксисе и конструкциях, а потом брать:
 Б. Страуструп "Язык программирования С++" 3-е издание - лучшего я ничего не видел.

А потом уж можно и другие типа:
-  Г. Буч "Объектно-ориентированный анализ ...(что-то еще - длинное название)",
-  Мэйрес "Эффективное использование С++" (и еще один том с похожим названием),
- мне очень нравиться Джефф Элджер "С++: Библиотека программиста"(в оригинале "C++ for Real Programmers")
- говорят Coplien "Advanced C++ Programming Styles and Idioms" очень хорошая вещь.

Автор: alexmar 9.12.2002, 18:03
Цитата(Fantasist @ 07.12.2002, 20:59)
Б. Страуструп "Язык программирования С++" 3-е издание - лучшего я ничего не видел.

Еще раз, спасибо за инфу. Что касается Страуструпа то у меня есть в электонном и бумажном виде 2 издание а третьего я нигде в инете не нашел. А насколько она отличается от 2-го и если сильно, то где ее можно найти в эл. виде?

Автор: Fantasist 10.12.2002, 07:10
Страуструп написал в предисловии, что он решил полностью переписать второе издание, ибо иначе никак нельзя было отразить современные возможности и идиомы языка. "80% материала добавлено по сравнению со вторым".

В электроном виде не знаю, не люблю я читать электронные книги (статьи еще можно). Она у меня в бумажном варианте, чему я очень рад.

Автор: alexmar 10.12.2002, 08:06
Понял. Бум искать :bored

Автор: alexmar 10.12.2002, 08:44
Вдогонку к предыдущему. Нашел в каталогах 2 книги Страуструпа
1.  Язык программирования С++. 3-изд. 2000  Страуструп 60.00   /  21511 ДАКОР  
2.  Язык программирования C++.Специальное издание 2001  Б.Страуструп 85.30  1099/п 31564 АЛЕРТА  
Что во второй добавлено по сравнению с первой?

:butbut

Автор: Fantasist 10.12.2002, 15:53
У меня как раз специальное - в нем написанно, что оно "отличается от третьего добавлением двух новых приложений (локализация и безопасная обработка исключений средствами стандартной библиотеки ), многочисленными уточнениями и исправлениями в самом тексте."
Значит от третьего почти ничем не отличается. Слекга апгрейденный вариант.

Автор: alexmar 10.12.2002, 17:10
Понял, спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)