246071-Либерти-Освой-самостоятельно-С-за-21-день (852741)
Текст из файла
AnnotationВ книге широко представлены возможности новейшей версии программного продуктаMicrosoft Visual C++. Подробно описаны средства и подходы программирования современныхпрофессиональных приложений. Материалы книги дополнены многочисленнымидемонстрационнымипрограммами,впроцессеразработкикоторыхмаксимальноиспользуютсявозможности программных инструментов Microsoft Visual Studio. Особое внимание уделеноновинкамверсии6.0иновейшимтехнологиямобъектно-ориентированногопрограммирования,включая использование библиотеки MFC и шаблонов классов, а также создание связанныхсписков. Отдельное занятие посвящено вопросам объектно-ориентированного анализа ипроектирования приложений. Подробно рассмотрены все средства и подходы конструированиясобственныхпользовательскихклассов.Книгарассчитананаширокийкругчитателей,интересующихсясовременнымипроблемамипрограммирования.ДжессЛибертиОбавтореПосвящениеБлагодарностиВведениеДлякогоэтакнигаНеделя№1ОсновныевопросыНесколькословдляпрограммистовнаязыкеCЧтодальшеДень1-й.ПервыешагиВведениеКраткийэкскурсвисториюязыкаC++ПрограммыРешениемногихпроблемПроцедурное,структурированноеиобъектно-ориентированноепрограммированиеЯзыкC++иобъектно-ориентированноепрограммированиеИнкапсуляцияНаследованиеимногократноеиспользованиеПолиморфизмЭволюцияязыкаC++НужнолисначалаизучитьязыкCC++иJavaСтандартANSIПодготовкакпрограммированиюСредаразработкиКомпиляцияисходногокодапрограммыСозданиеисполняемогофайласпомощьюкомпоновщикаЦиклразработкиПерваяпрограмманаязыкеC++—HELLO.cppОсваиваемкомпиляторVisualC++6ПостроениепроектаприветствияОшибкикомпиляцииРезюмеВопросыиответыКоллоквиумКонтрольныевопросыУпражненияДень2-й.СоставныечастипрограммынаязыкеC++ПростаяпрограмманаязыкеC++КраткообобъектеcoutКомментарииВидыкомментариевИспользованиекомментариевНапоследокпредупреждение:осторожнеескомментариями!ФункцииИспользованиефункцийРезюмеВопросыиответыКоллоквиумКонтрольныевопросыУпражненияДень3-й.ПеременныеиконстантыЧтотакоепеременнаяРезервированиепамятиРазмерцелыхЗнаковыеибеззнаковыетипыБазовыетипыпеременныхОпределениепеременнойЧувствительностькрегиструбуквКлючевыесловаСозданиенесколькихпеременныходноготипаПрисваиваниезначенийпеременнымКлючевоесловоtypedefВкакихслучаяхследуетиспользоватьтипыshortиlongПереполнениебеззнаковыхцелыхПереполнениезнаковыхцелочисленныхзначенийСимволыСимволыичислаСпециальныесимволыКонстантыЛитеральныеконстантыСимвольныеконстантыОпределениеконстантспомощьюдирективы#deiineОпределениеконстантспомощьюключевогословаconstКонстантыперечисленийРезюмеВопросыиответыКоллоквиумКонтрольныевопросыУпражненияДень4-й.ВыраженияиоператорыВыраженияСимволыпробеловБлокиикомплексныевараженияОперацииОператорыОператорприсваиванияМатематическиеоператорыЦелочисленноеделениеиделениепомодулюСовместное использование математических операторов с операторамиприсваиванияИнкрементдекрементПрефиксипостфиксПриоритетыоператоровВложениекруглыхскобокЧтотакоеИСТИННООператорыотношенийОператорifИспользованиеотступоввпрограммныхкодыхКлючевоесловоelseСложныеконструкциисifИспользованиефигурныхскобокдлявложенныхоператоровifЛогическиеоператорыЛогическоеИЛогическоеИЛИЛогическоеНЕТВычислениепосокращеннойсхемеПриоритетыоператоровотношенийПодробнееобистинеилжиУсловныйоператорРезюмеВопросыиответыКоллоквиумКонтрольныевопросыУпражненияДень5-й.ФункцииЧтотакоефункцияВозвращаемыезначения,параметрыиаргументыОбъявлениеиопределениефункцийОбъявлениефункцииПрототипыфункцийОпределениефункцииВыполнениефункцийЛокальныепеременныеГлобальныепеременныеГлобальныепеременные;будьтеначекуПодробнееолокальныхпеременныхОператоры,используемыевфункцияхПодробнееобаргументахфункцийИспользованиефункцийвкачествепараметровфункцийПараметры-этолокальныепеременныеПодробнееовозвращаемыхзначенияхЗначенияпараметров,используемыепоумолчаниюПерегрузкафункцийДополнительныесведенияофункцияхПодставляемыеinline-функцииРекурсияРаботафункций-приподнимаемзавесутайныУровниабстракцииРазбиениепамятиСтекифункцииРезюмеВопросыиответыКоллоквиумКонтрольныевопросыУпражненияДень6-й.БазовыеклассыСозданиеновыхтиповЗачемсоздаватьновыйтипКлассыичленыклассовОбъявлениеклассаНесколькословобиспользуемыхименахОпределениеобъектаКлассывсравнениисобъектамиПолучениедоступакчленамклассаЗначенияприсваиваютсяобъектам,анеклассамЧтообъявишь,тоибудешьиметьОграничениедоступакчленамклассаОставьтеданныеклассазакрытымиОграничение доступа к данным - это не способ защиты данных, а лишьсредствооблегченияпрограммированияОпределениеметодовклассаКонструкторыидеструкторыКонструкторыидеструкторы,заданныепоумолчаниюИспользованиеконструктора,заданногопоумолчаниюОбъявлениефункций-членовсоспецификаторомconstЧемотличаетсяинтерфейсотвыполненияклассаГде следует распологать в программе объявления классов и определенияметодовВыполнениесподстановкойКлассысодержащиедругиеклассывкачестведанных-членовСтруктурыПочемудваключевыхслованесутодинаковуюсмысловуюнагрузкуРезюмеВопросыиответыКоллоквиумКонтрольныевопросыУпражненияДень7-й.ЦиклыОрганизацияцикловИсторияоператораgotoПочемуследуетизбегатьоператораgotoОрганизацияцикловспомощьюоператораwhileСложныеконструкциисоператоромwhileОператорыbreakиcontinueИспользованиеконструкцииwhile(true)Организацияцикловспомощьюконструкцииdo...whileИспользованиеконструкцииdo...whileОператорforСложныевыражениясоператоромforМножественныеинициализациииприращениясчетчиковциклаНулевыепараметрыциклаforИспользованиепустыхцикловforВложенныециклыОбластьвидимостипеременных-счетчиковцикловforОбобщениесведенийоциклахОператорswitchОбработкакоммандменбспомощьюоператораswitchРезюмеВопросыиответыКоллоквиумКонтрольныевопросыУпражненияПодведениеитоговИтогипервойнеделиНеделя№2ОсновныевопросыЧтодальшеДень8-й.УказателиЧтотакоеуказательИспользованиеуказателякаксредствахраненияадресаИменауказателейОператорразыменовыванияУказатели,адресаипеременныеОбращениекданнымчерезуказателиИспользованиеадреса,хранящегосявуказателеДлячегонужныуказателиПамятьстековаяидинамическираспределяемаяОператорnewОператорdeleteЧтотакоеутечкапамятиРазмещениеобъектоввобластидинамическойпамятиУдалениеобъектовДоступкчленамклассаДинамическоеразмещениечленовклассаУказательthisБлуждающие,дикиеилизависшиеуказателиИспользованиеключевогословаconstприобъявленииуказателейИспользование ключевого слова const при объявлении указателей ифункций-членовУказательconstthisВычислениясуказателямиРезюмеВопросыиответыКоллоквиумКонтрольныевопросыУпражненияДень9-й.СсылкиЧтотакоессылкаИспользованиеоператораадреса(&)приработесоссылкамиСсылкинельзяпереназначатьНачтоможноссылатьсяНулевыеуказателиинулевыессылкиПередачааргументовфункцийкакссылокПередачауказателейвфункциюswap()Передачассылоквфункциюswap()ПредставленияозаголовкахфункцийипрототипахВозвращениенесколькихзначенийВозвращениезначенийспомощьюссылокПередачассылокнапеременныекаксредствоповышенияэффективностиПередачаконстантногоуказателяСсылкивкачествеальтернативыКогдалучшеиспользоватьссылки,акогда-указателиКоктейльизссылокиуказателейНе возвращайте ссылку на объект, который находиться вне областивидимости!ВозвращениессылкинавобластидинамическогообменаАгдежеуазатель?РезюмеВопросыиответыКоллоквиумКонтрольныевопросыУпражненияДень10-й.ДополнительныевозможностииспользованияфункцииПерегруженныефункции-членыИспользованиезначений,заданныхпоумолчаниюВыбормеждузначениямипоумолчаниюиперегруженнымифункциямиКонструктор,принятыйпоумолчаниюПерегрузкаконструкторовИнициализацияобъектовКонструктор-копировщикПерегрузкаоператоровЗаписьФункцииинкрементаПерегрузкапрефиксныхоператоровТипывозвратовперегруженныхфункцийоператоровВозвращениебезымянныхвременныхобъектовИспользованиеуказателяthisПерегрузкапостфиксныхоператоровРазличиямеждупреинкрементномипостинкрементномОператорсуммированияПерегрузкаоператорасуммированияОсновныепринципыперегрузкиоператоровОграниченияперегрузкиоператоровЧтоможноперегружатьОператорприсваиванияОператорыпреобразованийОператорыпреобразованиятиповРезюмеВопросыиответыКоллоквиумКонтрольныевопросыУпражненияДень11-й.НаследованиеЧтотакоенаследованиеИерархияинаследованиеЦарствоживотныхСинтаксиснаследованияклассовЗакрытыйилизащищенныйКонструкторыидеструкторыПередачааргументоввбазовыеконструкторыЗамещениефункцийСокрытиеметодабазовогоклассаВызовбазовогометодаВиртуальныеметодыКакработаютвиртуальныеметодыНельзябратьтам,находясьздесьДроблениеобъектаВиртуальныедеструкторыВиртуальныйконструктор-копировщикЦенавиртуальностиметодовРезюмеВопросыиответыКоллоквиумТестУпражненияДень12-й.МассивыисвязанныелистыЧтотакоемассивыЭлементымассиваВыводданныхзапределамимассиваОшибкиподсчетастолбцовдлязабораИнициализациямассиваОбъявлениемассивовМассивыобъектовМногомерныемассивыИнициализациямногомерногомассиваНесколькословопамятиМассивыуказателейОбъявлениемассивоввобластидинамическогообменаУказательнамассивилимассивуказателейИменамассивовиуказателейУдалениемассиваизобластидинамическойпамятиМассивысимволовФункцииstrcpy()иstrncpy()КлассыстрокСвязанныеспискиидругиеструктурыОбщиепредставленияосвязанныхспискахДелегированиеответственностиКомпонентысвязанныхсписковЧтомыузналивэтойглавеКлассымассивовРезюмеВопросыиответыКоллоквиумКонтрольныевопросыУпражненияДень13-й.ПолиморфизмПроблемысодиночнымнаследованиемПереносметодавверхпоиерархииклассовПриведениеуказателяктипупроизводногоклассаДобавлениеобъектавдваспискаМножественноенаследованиеИз каких частей состоят объекты, полученные в результатемножественногонаследованияКонструкторы классов, полученных в результате множественногонаследованияДвусмысленностьситуацииНаследованиеотобщегобазовогоклассаВиртуальноенаследованиеПроблемысмножественнымнаследованиемКлассы-мандатыАбстрактныетипыданныхЧистыевиртуальныефункцииВыполнениечистыхвиртуальныхфункцийСложнаяиерархияабстракцийКогдаследуетиспользоватьабстрактныетипыданныхЛогикаиспользованияабстрактныхклассовПарасловомножественномнаследовании,абстрактныхтипахданныхиязыкеJavaРезюмеВопросыиответыКоллоквиумКонтрольныевопросыУпражненияДень14-й.СпециальныеклассыифункцииСтатическиепеременные-членыСтатическиефункции-членыУказателинафункцииЗачемнужныуказателинафункцииМассивыуказателейнафункцииПередачауказателейнафункциивдругиефункцииИспользованиеtypedefсуказателяминафункцииУказателинафункциичленыМассивыуказателейнафункции-членыРезюмеВопросыиответыКоллоквиумКонтрольныевопросыУпражненияПодведениеитоговНеделя№3ОсновныевопросыЧтодальшеДень15-й.ДополнительныевозможностинаследованияВложениеДоступкчленамвложенногоклассаФильтрациядоступаквложеннымклассамЦенавложенийПередачаобъектакакзначенияРазличныепутипередачифункциональностиклассуДелегированиеЗакрытоенаследованиеКлассыдрузьяФункциидрузьяФункциидрузьяиперегрузкаоператораПерегрузкаоператоравыводаРезюмеВопросыиответыКоллоквиумКонтрольныевопросыУпражненияДень16-й.ПотокиЗнакомствоспотокамиИнкапсуляцияБуферизацияПотокиибуферыСтандартныеобъектыввода-выводаПереадресацияВыводданныхспомощьюcinСтрокиПроблемы,возникающиепривводестрокОператор>>возвращаетссылкунаобъектistreamДругиеметодыобъектаcinВвододногосимволаИспользованиефункцииgef()безпараметровИспользованиефункцииget()спараметромВводстроксостандартногоустройствавводаИспользованиефункцииcin.ignore()Функции-членыpeek()иputback()ВводданныхспомощьюcoutОчисткабуферавыводаФункции-членыобъектаcoutМанипуляторы,флагиикомандыформатированияИспользованиефункцииcout.width()УстановкасимволовзаполненияУстановкафлаговСравнениепотоковифункцииprintf()ИспользованиефайловдлявводаивыводаданныхОбъектыofstreamСостоянияусловийОткрытиефайловдляввода-выводаНастройкаоткрытияфайлаобъектомofstreamДвоичныеитектовыефайлыУстановкапараметровввода-выводаспомощьюкомманднойстрокиРезюмеВопросыиответыКоллоквиумКонтрольныевопросыУпражненияДень17-й.ПространстваименВведениеВызовпоименифункцийиклассовСозданиепространстваименОбъявлениеиопределениетиповОбъявлениефункцийзапределамипространстваименДобавлениеновыхчленовВложенияпространстваименИспользованиепространстваименКлючевоесловоusingИспользованиеusingкакоператораИспользованиеusingвобъявленияхПсевдонимыпространстваименНеименованныепространстваименСтандартноепространствоименstdРезюмеВопросыиответыКоллоквиумКонтрольныевопросыУпражненияДень18-й.Анализипроектированиеобъектно-ориентированныхпрограммЯвляетьсялиC++объектно-ориентированнымязыкомпрограммированияПостроениемоделейПроектированиепрограмм:языкмоделированияПроцесспроектированияпрограммИдеяАнализтребованийСитуацияиспользованияОпределениепользователейОпределениепервойситуациииспользованияСозданиемоделидоменаОбобщениеВложениеАссоциацияРазработкасценариевРазработкапутеводителейДиаграммывзаимодействийСозданиепакетовАнализсовместимостиприложенияАнализсуществующихсистемПрочаядокументацияВизуализацияАртефактыПроектированиеЧтотакоеклассыПреобразованияДругиепреобразованияОбработкаданныхОтчетыУстройстваСтатическаямодельКарточкиCRCКакпроводитьзаседанияскарточкамиСфокусируемсянараспределенииответственностиКаксделатьклассживымОграничениякарточекCRCСозданиемоделиUMLnoкартонкамCRCОтношениямеждуклассамиМножественноенаследованиепротиввложенияДискриминаторыисиловыеклассыДинамическаямодельДиаграммыпереходовсостоянийСверхсостоянияРезюмеВопросыиответыКоллоквиумКонтрольныевопросыУпражненияДень19-й.ШаблоныЧтотакоешаблоныПараметризованныетипыСозданиеэкземплярашаблонаОбъявлениешаблонаИспользованиеименишаблонаВыполнениешаблонаФункциишаблонаШаблоныидрузьяДружественныеклассыифункции,неявляющиесяшаблонамиДружественныйклассилифункциякакобщийшаблонИспользованиеэкземпляровшаблонаСпециализированныефункцииСтатическиечленыишаблоныСтандартнаябиблиотекашаблоновКонтейнерыПоследовательныеконтейнерыВекторСписокКонтейнердвухстороннейочередиСтекиОчередьАссоциативныеконтейнерыКартаДругиеассоциативныеконтейнерыКлассыалгоритмовОперации,неизменяющиепоследовательностьАлгоритмыизмененияпоследовательностиРезюмеВопросыиответыКоллоквиумКонтрольныевопросыУпражненияДень20-й.ОтслеживаниеисключительныхситуацийиошибокОшибки,погрешности,ляпусыи"гнилой"кодИсключительныеситуацииНесколькослово"гнилом"кодеИсключенияКакиспользуютсяисключенияИспользованиеблоковtryиcatchПерехватисключенийИспользованиенесколькихоператоровcatchНаследованиеисключенийДанныевклассахисключенийиприсвоениеименобъектамисключенийИсключенияишаблоныИсключениябезошибокОшибкииотладкапрограммыТочкаостановаАнализзначенийпеременныхИсследованиепамятиКодассемблераРезюмеВопросыиответыКоллоквиумКонтрольныевопросыУпражненияДень21-й.ЧтодальшеПроцессорикомпиляторПросмотрпромежуточногофайлаИспользованиедирективы#defineИспользованиедирективы#defineдлясозданияконстантИспользованиедирективы#defineдлятестированияКоммандапрепроцессора#elseВключениефайловипредупреждениеошибоквключенияМакросыЗачемнужнывсеэтикруглыескобкиМакросывсравнениисфункциямишаблоновПодставляемыефункцииОперациисострокамиОператорвзятиявкавычкиКонкатенацияВстроенныемакросыМакросassert()Оладкапрограммыспомощьюassert()Макросassert()вместоисключенийПобочныеэффектыИнвариантыклассаПечатьпромежуточныхзначенийУровниотладкиОперациисбитамиданныхОператорИ(AND)ОператорИЛИ(OR)ОператорисключающегоИЛИ(XOR)ОператордополнениядоединицыУстановкабитовСбросбитовИнверсиябитовБитовыеполяСтильпрограммированияОтступыФигурныескобкиДлинныестрокиКонструкциисоператоромswitchТекстпрограммыИменаидентификаторовПравописаниеииспользованиепрописныхбукввименахКомментарииОрганизациядоступакданнымиметодамОпределенияклассовВключениефайловМакросassert()КлючевоесловоconstСделаемещеодиншагвпередГдеполучитьсправочнуюинформациюисоветыЖурналыВыскажитесвоемнениеокнигеРезюмеВопросыиответыКоллоквиумКонтрольныевопросыУпражненияПодведениеитоговПриложениеАПриоритетыоператоровПриложениеБКлючевыесловаC++ПриложениеВДвоичныеочислаДругиесистемысчисленияЕщеобоснованияхДвоичнаясистемасчисленияПочемуименнооснование2Биты,байтыиполубайтыЧтотакоекилобайтДвоичныечислаШестнадцатеричнасистемасчисленияПриложениеГ-ОтветыДень1КонтрольныевопросыУпражненияДень2КонтрольныевопросыУпражненияДень3КонтрольныевопросыУпражненияДень4КонтрольныевопросыУпражненияДень5КонтрольныевопросыУпражненияДень6КонтрольныевопросыУпражненияДень7КонтрольныевопросыУпражненияДень8КонтрольныевопросыУпражненияДень9КонтрольныевопросыУпражненияДень10КонтрольныевопросыУпражненияДень11КонтрольныевопросыУпражненияДень12КонтрольныевопросыУпражненияДень13КонтрольныевопросыУпражненияДень14КонтрольныевопросыУпражненияДень15КонтрольныевопросыУпражненияДень16КонтрольныевопросыУпражненияДень17КонтрольныевопросыУпражненияДень18КонтрольныевопросыУпражненияДень19КонтрольныевопросыУпражненияДень20КонтрольныевопросыУпражненияДень21КонтрольныевопросыУпражненияnotesДжессЛибертиОсвойсамостоятельноC++за21день.ОбавтореДжесс Либерти (Jesse Liberty) — автор шести книг, посвященных языку C++ и объектноориентированномуанализуипроектированию,атакжепостоянныйавторжурналаC++Report.Он возглавляет компанию Liberty Associates, Inc.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.