李林Linux第一讲前言_第1页
李林Linux第一讲前言_第2页
李林Linux第一讲前言_第3页
李林Linux第一讲前言_第4页
李林Linux第一讲前言_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux环境高级编程李林电子科技大学计算机学院自我介绍姓名:李林专业:计算机系统结构学位:博士职称:副教授研究方向:操作系统及安全分布式计算计算机网络QoS自我介绍技术背景:熟悉windows内核程序设计熟悉windowsAPI/MFC/ATL/WTL的应用开发熟悉Linux下基于API的应用开发熟悉Linux下网络应用程序开发熟悉Linux内核网络模块开发熟悉erlang应用开发Email:lilin@第一讲前言教学目的课程主要内容及安排学习方法学习资料推荐编程环境介绍第一讲前言教学目的课程主要内容及安排学习方法学习资料推荐编程环境介绍教学目的作为程序员,为什么要学习Linux程序设计?计算机网络越来越普及,带来了巨大的经济效益单机版程序越来越弱化,各种应用将放置于云端(桌面应用web化、web中心化、SaaS、云计算???)Linux是后台系统首选的操作系统7教学目的Linux上的程序设计涉及到的内容很多:Shell编程各种Web后台技术:PHP,Python,Ruby….数据库技术:MySql,Oracle,Sybase…….各类开发语言:erlang,scalar……Linux内核程序设计底层的基于操作系统API的socket编程技术本课程的关注点?从程序员视角看计算机系统硬件设备操作系统API层ShellC/C++库其他库或平台四个层次从程序员视角看计算机系统硬件设备操作系统API层ShellC/C++库其他库或平台硬件工程师包括固件程序微码的编写从程序员视角看计算机系统硬件设备操作系统API层ShellC/C++库其他库或平台内核工程师包括驱动、各类内核模块开发从程序员视角看计算机系统硬件设备操作系统API层ShellC/C++库其他库或平台应用开发工程师基于API的程序开发从程序员视角看计算机系统硬件设备操作系统API层ShellC/C++库其他库或平台应用开发工程师使用各种库进行开发从程序员视角看计算机系统硬件设备操作系统API层ShellC/C++库其他库或平台应用程序开发从程序员视角看计算机系统硬件设备操作系统API层ShellC/C++库其他库或平台应用程序开发本课程关注点从程序员视角看计算机系统硬件设备操作系统API层ShellC/C++库其他库或平台应用程序开发本课程关注点理清学习思路教学居目的本课低程以Li厅nu籍x操作颠系统醒为基勇础,予通过座介绍梦该系炎统的AP旺I,使挥同学内们掌虾握Li楼nu缎x系统缸调用确的基驶本使忠用方缝法。同时骄,也驼希望柔通过恰本课吴程的要教学耐,使鬼同学却们初惧步掌享握按著照当乘代程谦序设甜计思透想灵涌活运唉用AP抄I的方袜法,歌以提辱高学绸生在Li凝nu州x环境掀下进泊行程宝序开坊发的饮能力粱和水糊平。为此蹦,本刮课程殃开发车了一伏个面蝇向对房诚象的和执行复体类威库什么辣是系砍统调标用和柱库过去wi碍nd市ow站s使用0x盒2e号中蜂断作捧为系造统调温用入蛮口,息而li律nu脑x使用0x盛80号。现在镇仍然泥可以愉使用0x移80示例1.咳10编译下方法框:需阶要安惊装na粱sm#n骄as香m口–f崇e壤lf溪64锋h闸el供lo烧.a绢sm#g帽cc趴-颈o农he亡ll泄o像he零ll欠o.哲o调试构:gd帝bdi蔽sa瓦ss伐m使ai伪n毫//段名找到叨地址属后,b垒*a仁dd艘rr什么雨是系烤统调责用和闸库In伏te桨l提供涨了sy奴se植nt舟er习/s牵ys租ex迁it指令贝,可争以在lo芝ng剪m重od买e下运约行,倍但是木在AM燃D上这来组指等令无否效。In姻te额l不支必持32位中里使用sy汪sc猴al忙l/守sy哄sr老et,但篮和AM愈D相同金,在64位下杜支持所以蛛,为办了兼桑容性摆,在64位下叫使用sy芳sc锐al脂l/挠sy允sr笑et示例1.狐11什么诱是系种统调很用和巾库从某庄种意掌义上吴将,C库实清际上血是对缠系统银调用则的包嫁裹。通常即,把羞包裹舟之后应的函绞数成淋为AP缺I示例1.哗12真正狸的入利口点如何再调试C库第一沫讲排前言教学称目的课程旱主要纷内容滨及安专排学习勇方法学习阀资料蜓推荐编程耕环境址介绍课程来主要皇内容翁及安乒排总学丹时:20学时教材Li窗nu心x程序嘴设计瞧实践译,李哨林敞段翰伞聪快著,司电子料科技笋大学猎出版染社参考蔑资料UN池IX环境殃高级称编程,W.遵Ri理ch辜ar究d梅St僚ev疏en标s,人吗民邮单电出福版社考核凯方式考查鸭(平学时作桐业)有问溉题、幸错误昼时,清随时观打断计提问课程日主要催内容操作各系统肃程序魄设计交所涉您及的落内容刊过多与,不摔可能虾面面尚俱到归,只抚能讨信论重诞点内国容如何择组织寺重点沸内容炒?本被课程仿将讨然论如雕何设柴计、虑实现陪一个瞧执行院体模虚型的和程序避库,夸并以决此为遥线索六,覆裳盖重祝点内毫容执行辜体模胀型程何序库面向踢对象断的——类库封装遵了基骆本的恰执行候体:爹线程左、进库程封装珠了执兰行体馆常见为的创尺建方望式、液同步晕方式胀、通守信方童式ht静tp职s:双//餐gi庭th廉ub飞.c抖om宜/u秘es逗tc顿ll肆/L沉ib数Ex立ec肺ut理iv什e执行犯体程棵序库课程所涉昼及的龟内容执行估体类炮库的伍日志吧实现文件宝的基闷本操预作、趟文件况操作聪的I/悠O效率拣分析日、库隔函数融出错堵处理阅、日路志类直的实呜现线程慎的封偶装线程东的基仙本概妙念、爸线程执创建萌与终岸止、冰多种望程序对设计使思想搅封装眉线程捏的创秩建、匹线程伙同步杜的封扯装、wi罢nd葛ow穿s消息杂循环闪机制虹在Li避nu即x的重荷现与办封装进程蛾的封滥装进程园的创招建与种终止混、多娇种程泊序设列计思宫想封也装进奴程的证创建竖、进锦程同切步的条封装咸、进槽程通车信的斩封装25Li婆nu榆x环境烤高级艰编程畅实验4~使9周,汇将开亡设《L梁in沃ux环境肚高级络编程犁实验》一课主要侍内容狂包括瞒:高级拜编程侧环境进学习将(vi的高宅级使云用,ma栏ke的使迈用、gd驱b的使劲用、肚测试仅驱动仆工具go茶og般le孝te威st使用绞)序列宵化模巧型实西现基本后网络掘程序撑框架壁实现通用盈插件青框架跑实现第一桐讲馋前言教学被目的课程敲主要飞内容跳及安茫排学习死方法学习窜资料嗓推荐编程倒环境俯介绍同学恶们存妄在的省普遍封问题各方难的反陆馈意舱见:鹅一些徒基础厌性的最,或旋者核侮心的池知识艇点没普有吃伯透语言傍方面th征is指针吐、虚激表、旁成员彼函数缺和一鼻般函竞数异门同局部大对象课如何唤影响婚性能在基受类析继构函吓数中宫调用躲虚函艳数有献什么条效果操作毒系统秧方面什么孕是进汉程上粒下文编译系方面什么灿是编俯译单窜元、漏为什拨么会肯有重禾定义算法若方面为什贺么时窝间复非杂度棕一样行的两校个算洽法,断实际辉执行板时间衡会有子数量遗级差预异数据嗽库方瞒面怎样榜写sq游l语句范,才纹会高页效缺乏罚一种嫌适合配于计隶算机割软件嘉系统捷的学拨习方除法总体拼的学床习方快法——系统拳观总体寺思想“少喝”量晴的知怎识+很“猜测攀、实轻证、写构建俩”=系统激观高级煎语言底层分物理慢模型软件贫架构核心课程及课程设计猜测、实证、构建站在恒处理醉器的斯角度社,利姿用反他汇编器技术错,理聪解使带用C/泼C+至+所编踩写的撇程序书的执完行细灰节站在学软件吴设计裙的角谜度,共利用C/庆C+渴+所蕴公含的扛程序腥设计童思想馋,理赞解架器构的婚设计至方法总体通的学却习方跑法——系统贫观从高咐级语袍言到愤底层泼物理颤模型从高压级语弹言到闯软件惧架构总体众的学糟习方汪法——系统判观从高革级语乱言到问底层纪物理锹模型从高肝级语沃言到祖软件幼架构总体摘的学雁习方叼法——系统脚观为什辜么高幻玉级语漆言到亏底层坦物理骆模型降这么毁重要厚?问题1:st验ru良ct前s打tr农u1{ch站ar温a厚;sh弟or颤t盖I;};请问st育ru禁1的大策小(Si倍ze)是斯多少戴?对齐什么禽是对梳齐?柔为什蛇么要鼓对齐总体惰的学贸习方紫法——系统掩观问题2:lo战ng裹*境p赏;in抽t夫ma房诚in苦(){ad蓬dr薪()挠;lo诸op亡()挨;}vo亚id法a界dd犬r(逐){lo膨ng孩k竞;k躁=崇0;p扫=证&k础;}vo础id悄l牌oo疤p(雅){lo向ng融i连,慌j;j尺=蝇0;fo乖r阴(i蜻=勿0尿;备i<塑10垂;i始++蓬){(*访p)拿--谎;j+爱+;pr诞in法tf傲(“匪%d虚\n掉”,榴i接);}}总体燃的学营习方俭法——系统座观问题3:in盆t捧ma败in墓(){in平t勇i;in刊t土a[班10岁];fo拳r已(i哲=配0梯;互i瓣<=牙1祝0;丘+织+i昏){a[禾i]宋=烦0胸;pr万in精tf煎(“糊%d梅\n疗”,怨i设);}ex呢it日(0弱);}总体俭的学逃习方翼法——系统该观问题4:vo镇id哭m广ai戚n(店){in斗t催*错i;al陆lo蛋ca度te落In额t(袖i)炉;pr茧in瞧tf故(“庄*i胡=馋%舱d”狂,再*i让);}vo鞋id等a才ll圣oc刑at珍eI慎nt刘(i虚nt需*讽i价){i馆=斤(i磁nt输*停)架ma毁ll倍oc晓(s建iz限eo升f(荐in膊t)蔬);*i薯=步3峰;}总体去的学咸习方时法——系统伙观问题5:f和g谁快范?in迹t互_t活ma责in吧(i孤nt眼a枕rg赌c,直_捉TC固HA衬R*稳a朗rg央v[卡]){DWO笑RD擦t害1湖=编:妹:G结et狡Ti春ck听Co伍un近t(欲);fo菜r(怀in垒t拉i璃=笨0;欧i让<N边UM摩;惕i+矿+)f(温);DW忠OR赶D福t2纲=堆::井Ge矮tT脚ic碧kC认ou节nt石()注;pr而in蕉tf浊("仔%d荷\n粥",塘t耽2坐-职t1诊);DW恳OR元D登t3席=击::毙Ge什tT勿ic鸟kC隔ou太nt婶()动;fo佣r(支in涨t魔i廊=痰0;况i击<N迈UM顾;促i+辆+)g(塌);DW催OR舰D剃t4束=绪::易Ge驼tT傍ic到kC搁ou砌nt震()婚;pr怪in居tf夜("稳%d适\n成",胃t居4约-概t3降);re雹tu恒rn芹0里;}答案站:f快。ca泻ch劲e的作绒用vo塌id耳f禁(){in辩t未a[乏N]隔[N木];fo煮r(肥in巴t遮i=距0;至i溜<N辟;际i+膜+)fo品r(饭in咸t熟j=废0;赞j虫<N宫;夺j+校+)a[鹊i]财[j镇]许=去0;}vo忙id举g侦(){in奥t碍a[拒N]智[N枪];fo怪r(程in史t宴i=谣0;巨i乳<N绵;邻i+校+)fo聪r(遇in籍t告j=岗0;橡j我<N瓶;孤j+个+)a[绣j]雅[i运]保=剖0;}总体咸的学惑习方束法——系统嫂观L1和L2昌c哪ac扫he位于cp奴u和内件存之训间访问塘速度翻快于谣内存蔽,但坊慢于乓寄存内器采用腹了局鱼部性遵原理线:当访冤问某装一处膏内存遵地址桃时,喉下次叫再访息问该档地址权及附疾近区纱域的剪概率窗较大因此松,当鸡程序样访问锯某个链地址王时,抱该地萄址连果同之睬后的贱某个邮大小株的内练存空约间的尽数据夕,都帆会被否读入奸到ca森ch鲜e中下次峡访问眉内存徐中某步个地停址时旧,会绑首先秃检查ca括ch匀e中是块否有冬该地饮址的鱼数据病,若且有就序没有冠必要抚再访委问内布存了纲。速棵度大反大提酷高。总体凭的学劳习方脸法——系统辆观问题6:下姥面两似段代董码谁牲的效念率高复?in铃t付a浴=池-5镜;in歪t棚b报=役0;……扬……妙.if株(a先>弊0梨){b热=冬1;}el龟se{b虚=摆2;}答案凳:右埋边效脱率高提示港:CP忍U流水畅线分源支预也测in造t拢a渔=性-5蒙;in传t言b脑=赛0;……乏……今.if杏(a孩<马=弱0){b坊=熔2;}el纵se{b嘴=颤1;}总体钻的学腹习方编法——系统迁观同样节是局毒部性和原理折:当CP令U执行纽奉某条絮机器虏指令易时(污同样促存储亭在内颈存中威),求很大纯的概鲜率会竿执行塌该条咽指令稍下面毁的几境条指释令流水训线技秩术会咏提前牲为这痒几条岂将要戴执行剃的指贫令,设做好挎准备掏工作刃。(五执行散这几帜条指菌令的扭几个族阶段曲:如缸从内宿存中作取指领令、盟译码锦、准跨备操伴作数伸等等工)当遇酒到条拦件跳怕转指撕令时坦,有奔可能么提前牛做的材准备叮是无说用功——跳转垦发生伴了,贴很影阳响效惩率静态捡分支搏预测日:若粉跳转罪是向磁下的惧,则姿预测旬为不佛跳转销(多堂为if类语邀句)辟;若饼跳转债是向罢上的言,则可预测绿为跳述转(跑多为妨循环秧语句膜)通常嗓,大锄概率卡发生贝的分返支,暗放在if分支践中,袖不要版放在el星se分支法中总体南的学瘦习方思法——系统贤观问题7:缓存类是提蓄高运治行速娇度的微不二敲法宝比如甘寄存耳器是颈最快继的一级轧缓存死、二乌级缓齿存次民之内存SS卡D一般缝磁盘将要漠用的岸文件俘全部鹿缓存姓到内纤存,腥一定晴会提昂高访喘问速工度吗骑?为义什么物?页面贴的换灭入换答出Wi优nd劲ow坊s进程杯的线肤性地俘址空躁间、笼映射膜、物衔理地北址总体旧的学茶习方辈法——系统游观问题8:多线精程一粥定具顾有比腔单线枣程更染高的刷并发蝇性吗点?为姑什么每?考虑安多线演程的县网络慰服务索器模挡型当有忙客户距请求伶到达拜时,般就创心建一贺个线业程,照让其纺为客平户服盟务客户阔感受土到的极时间懒开销哗包括稿:创肢建线恨程的讯时间垒、完爷成客伏户请异求的吗时间传、线拔程销拔毁的羞时间恼、线淹程切竿换的稿时间若采剥用单盛线程碰模型如,即碧只有兽一个秆线程欧,客旅户感紧受到显的时榨间包疫括:俗完成奖客户摧请求仔的时扯间、紫在队轮列中辱排队持等待压的时俗间若完秆成客坊户请铸求的图速度挎很快翅,快书于客瞒户到黎达的碗速度覆,那狠么就浓没有祖了排花队的叉时间丸,显该然比霜多线期程快实际扒上只抽要排番队的误时间<线程朴创建误、销获毁、脏切换毙的时膀间,薪单线冰程都娇优于咱多线互程总体衡的学距习方印法——系统爪观问题9:同样绳数目质的多初层次跳的if-el辆se语句霜和sw涂it非ch语句勾哪个外执行束速度伸更快撕?为傅什么气?为什皆么sw呈it墙ch语句众必须病是整壶数而拆不能厅是浮府点或惨字符塑串。问题10:th潮is指针拴从何面而来椅?成员滩函数脊放在秒哪里勉?虚表牺是怎赠么回寒事?总体秒的学抚习方亏法——系统延观从高模级语崇言到受底层倒物理终模型从高年级语堪言到要软件齿架构总体诱的学岂习方呀法——系统您观为什及么从错高级枕语言兔到架衬构设窗计这祝么重贩要?帮助转从普点通程修序员列到架奔构师注意量在敏急捷中控,架蛋构师浆也是固程序崇员不要养当PP芦T架构唱师现状却:很多涝人号毁称使凳用C+泻+进行晴面向屿对象吴的设惊计,乏实际穿上只题是把st耳ru剂ct变成埋了cl己as栽s不要截以为绿功能镜实现结了就ok了,刑事情枯还很筹多程序=数据姨结构+算法程序=数据舒结构+算法+架构架构致的学督习更歼为重拣要。展为什辜么呢润?总体翅的学迟习方碌法——系统真观为什掏么有荡这么秋多种估软件仿设计过的思狠想?结构胆化的策思想基于猎对象苏的思裁想面向白对象塞的思刑想基于蓄接口合的思毙想基于呆模板酷的静窜态的役面向膝对象牧的思汉想面向笑方面杆的思光想函数落式的粱思想……六……票……炕……叶…为了窃应对四软件伶开发中中的繁各类赖变化软件喂开发阁的最首大本礼质就踩是手留工开涛发模窃式,拍再加牌上其徒逻辑销形态怪,使矩其开庙发过役程中巨变化未点特港别多为什损么有扣这么锁多种炮软件庄开发霞的管界理方裂法?传统少的方鸭法XPSc锁ru劲m……肿……柿……总体晴的学篇习方水法——系统锋观项目王初始览时,弓用户符自己修都不衡知道慨自己协需要鞠的是汁什么——汉弗途莱定歪律随着材项目洁的推爷进,某对软派件产货品的括理解衡逐渐战加深瓜,提舒出很捎多需庄求变蛋化,比甚至纵到了微验收昨阶段炭还要佳求增液加新贵功能而软廉件产咐品的密逻辑铲形态为又加雕剧了贫这一喘现象从管片理层务面讲阴,应辛尽可扔能地世使各漏类变杂化(厘需求军、设彼计、盒实现着、人米员等充等)桃带来交的影据响降水到最掠低例如愿敏捷拉开发图的生带命周逢期对用肌户变改化的放延迟浸就是亚一次蛾迭代迁周期介;而承基本配的瀑胡布模栏型则茂是整盘个生搅命周男期之所判以有紧多种般管理材方法锈,就捕是从减不同富的角敢度来州考虑睡如何史降低罚变化恢点带次来的席影响总体灭的学抹习方梁法——系统壁观从技矮术层棚面讲桌,当途有变瞎化产刮生时拒,当后用户浮要增剪加新捕功能艰时,治我们贞希望鸦只需摧要增鸟加新客代码砖,而咸不用四修改雨老代汽码——代码俘的封觉闭性也是银降低意变化包带来求的影忆响之所既以有放多种钉程序趴设计驴的思米想,洪就是扶从不袍同的沙角度爆来思灶考如铲何应怕对变位化点误,如胞何做温到代党码的扛封闭怎性按照饺不同赛的程团序设凝计思缸想,举写出陪来的挨代码宴之间掏将具教有不抢同的积组织身关系函数着之间惯、类你之间棚、模窝块之芒间、购子系愤统之填间都凑存在达着各隆种关漫系这种详关系好包含迟调用吨关系需等等代码伞之间产存在雕的关问系,琴被称赔为架裂构因此雅,小密到函朽数间挂,大或到模伍块间惰均存某在架醋构。崇架构棚是有炮层次轧的总体姓的学症习方牧法——系统怪观显然判,各之种程贡序设追计思朱想封傻装变我化点辱的原慈理,平最后球就体怕现在死按照舱这种疗程序迎设计偏思想烘所实酷现的政架构盐上——架构侮的重句要性一个拳理想光的架蜻构:仿当变榜化到傍达时洁,当仙用户锁要求饺增加可新功仆能时督,只软需要敏增加燃新代顽码而讲不用目改老辣代码当进允行架随构设弓计时廉,如手何决蜡策?首先斯根据馆经验听,判岸断可趴能的亲变化裕点把这步些变抖化点摧按照越优先剧级排确序,镰并赋字予权笋重设计摧架构喇决策秆时,忘即判集断该鼠架构芬是否勺能容此纳上统述变寇化点杂;比帽较多北个架忆构时拌,即己比较沉各自旨容纳寸的变滴化点优先斑容纳谱优先螺级高吊的、筛权重谜大的咳变化捏点总体匙的学仅习方丽法——系统剥观程序=数据踩结构+算法+架构为什竹么架弊构的度学习铜更为茶重要贩?什么蝇是写膛得好绘的程鞋序?代码雄规范缩进疲、各兄种命铃名等才等执行蜘效率醒高80寄20原则商业残产品沈往往冤都使逮用成坊熟的删技术算法荒研究塔多年医,常染见的研算法依问题铃基本首都有叨成熟泻的解文决方茅案更多池的工之作是音使用绍已有护算法隐,或数进行窃适应项性改典造架构圈好,穗能容重纳变帮化点变化退是软免件开扰发的位常态设计欲每个季函数钥、结歌构体到、类乒、模咽块、拦系统誉时,辨都要劝考虑缩慧容纳气变化近点,针都要妇考虑颈架构——每个粘程序尘员都艇跑不沫掉加法感器例暗子下面没按照裕多种燥程序桐设计横思想进,来性展示倡一个支加法吉器的而实现绕,以怀体会岔不同执程序妈设计邀思想狭在代右码间四关系壁,即楼架构书上所繁带来蚂的不青同本课硬程会樱多次至展示教六种滤编程袖范式漠的使叠用,吵加法想器是瞧第一扇次。略后面肺几次尝,将扎结合妨系统AP胆I进行杰展示拥,以盾达到刻按照胃现代迟程序景设计威思想断,灵盯活运街用AP景I的教嫂学目楼的加法屑器例犬子版本1:结捉构化绍的思恒想需要从实现青一个棕加法术器:樱在这子个加拖法器砖中,货已经匀保存失了被劫加数汽;现岂在需欣要传企递加而数给锄这个治加法妄器,按以让列其返浙回加徒法计昼算结缴果。结构煤化的藏基本疑思路略:用蒜一个傻结构袖体来陷保存若被加郑数,漠然后廉再外税带一僚个加畏法函醒数代码1.误1加法丢器例欢子版本1:结势构化秃的思液想变化粘来了输:现疫在需医要给恭被加糠数添贩加一侵个权扶重值寻;但辨是以湖前的燥加法孝器仍舌需保永留,稳因为至还有高一部读分代忌码会映使用昨它。思路希:既然忘还有耗一部耗分代圆码要残用老帆的加悬法器以,那野么老垦加法精器我午们还击是要垄保留容的按照额原有杏思路湾开发啄新的安加法若器代码1.血2加法练器例促子版本1:结行构化李的思快想为什爱么会爆有如地此长帝的变忧量名险?反对泻写注什释!喜!!不少池人的柿注释组写得道很无板聊,走如“幻玉定义咽了一腿个整卧型变专量”烟。这剪种情地况主退要为大了应近付检花查很多圾时候狭代码能和注较释不自一致——赶进存度不写畏注释不能看召懂代涨码吗甘?按照乖职责齿单一谊的原巴则,指这将渗导致失每个屋类都堡很小通常杀至多20待0到30削0行,议再加滔上每路个类员对应.h和.c储pp文件传,因肠此不删会出酸现一绸个文促件上航千行喊而不寒知从疼何处娃下手加法体器例固子版本1:结租构化滚的思宣想反对元写注驾释!拌!!不写工注释朵能看旗懂代榴码吗脸?按照校职责较单一杆的原旁则,抗这将作导致览每个岸类都洞很小变量妙、函发数、郊类的玻名称紫通常舒都较现长,榆能起孙到顾搜名思逆义的笛作用——代码向自注男释We麻ig亩ht作in盟gA室dd、SL筑We甩ig需ht辨in院gA侵ug橡en侄d、pS跟LW誉ei朗gh晃ti逢ng柴Au危ge限nd文档波还是虑要写绝的重要们的类排需要渡总体绝性的于说明复杂壳的算蠢法需氧要说略明类之馒间的地关系披需要屯说明加法雅器例气子版本1的缺功陷加法违器没佣有把腹被加酿数、红权重牺,以手及操丙纵它盏们的柏加法夸运算酱封装誓在一牺起当引皂入带嘴权重炭的加醒法器量时,跳需要壳对部馒分老遵代码件进行枕修改趣,没凤有做蝴到代泰码的乏封闭忙性没有贷实现芬变化柜点的筋封装加法需器例鸽子版本2:基算于对卵象的雪思想需要筛实现抢一个扔加法托器:厉在这那个加椅法器视中,叔已经牙保存犁了被运加数厦;现质在需俱要传量递加驰数给倡这个舰加法修器,纪以让糖其返立回加甘法计扁算结害果。思路跑:编确写一络个加字法器帖的类含,用惠一个尘数据刃成员挺保存漆被加昏数,敏然后果再写非一个pu扒bl殖ic的加竿法方觉法代码1.盖3加法膜器例次子版本2:基预于对剖象的裙思想变化扯来了妻:现殿在需局要给累被加稍数添客加一漏个权屿重值浊;但病是以赠前的通加法惕器仍私需保扫留,夺因为早还有占一部透分代蹄码会虾使用称它。思路廊:既然毕还有凑一部驻分代习码要俱用老司的加扒法器棵,那咱么老条加法辜器我源们还本是要锄保留耍的按照唱原有港思路屡开发善新的吐加法醉器CL麦We嫂ig急ht倍in坊gA笛dd爽er代码1.驶4加法母器例吃子版本2与版脆本1的比哨较版本2实现塌了数师据和鉴操纵臂数据怨的方还法的悼封装当引见入带得权重兼的加尸法器劲时,奋需要奖对部抹分老荐代码邪进行析修改深,没森有做羞到代瘦码的佩封闭仁性原本垮使用CL剪Ad堤de宁r类的求老代炸码,启若要刚改成薄使用CL养We默ig拍ht隙in哑gA惑dd嗽er类,蔬则必柿须修奸改对怀象创义建时岂的类弓型、魂参数菜传递扒时的锻类型当等等没有座实现葱变化拦点的拌封装加法颂器例侵子版本2解决滥了版基本1不能朴封装鬼数据至和方灯法的巾问题什么惑是封言装、瞧什么箭是对绘象,摩为什舞么需侮要封徒装、歼为什井么需闭要对殿象顾?这些恰概念莲到底抢是怎叮么产曾生的采?回到碎代码1.冠1按照坡习惯断,通巨常会如把SL俱Au将ge下nd的定呆义放总在一捡个.h中,锻而把Ad亩d函数支的定雨义和煎声明密,放暴在一毅个.c和.h中程序蒸员老逢是需种要在裹两个.h间切焦换查番看信骑息——麻烦很自走然的可想法趁就是浮干脆病把SL请Au列ge起nd结构改体和Ad码d函数歉放在京一起败,即夜代码1.辣5加法惯器例倒子ad字de惹r.严pF曾un机cA侦dd艘(&袄ad贝de辞r,熔5港);貌似肢成员抚函数欢的调窝用ad祝de虹r就是情对象pF匠un锹cA顽dd就是估成员怒函数不过捞这种端实现假方法恐太麻晒烦了只要麦有一朗个函骑数,忠就得秤定义复了函坦数指看针类亩型,伯就得辽在结欲构体拍中定栋义一真个该意类型宾的成婶员,喊就得脖在结必构体互实例盲创建粘后初攻始化暗该函协数指福针成凑员——太麻寻烦pF晌un化cA艘dd的第忆一个椒参数奏,即侧结构敏体实碗例的燥地址朽。之冒所以总需要铁它,羞是因薯为加去法函彩数需片要操肥纵结泛构体沫中的抓数据照。几乎熊所有牵这样述的函找数,婚都需处要操腾纵结绣构体坦中的少数据回,都扔需要厦结构错体实尝例的勺地址感,每蓬次函建数调狐用都辽需要怀传递猾地址强(像眼不像th润is指针彼)——太麻留烦这些难重复错的工挎作都内可以分交给止编译链器来胀做cl乏as固s、th款is诞生富了加法踢器例葛子版本3:面驰向对聚象的嘱思想需要僵实现它一个抵加法段器:吉在这觉个加蛇法器席中,蛙已经适保存格了被顾加数转;现竖在需怒要传夸递加瞧数给萍这个答加法掌器,婚以让壁其返根回加丛法计谈算结生果。思路禾:同该版本2类似哗,编腔写一关个加血法器戒的类CL凳Ad谋de子r,用关一个甩数据榆成员妖保存华被加鄙数,稼然后仆再写缓一个伟虚的pu再bl封ic的加来法方屑法代码1.级6加法劳器例促子版本3:面袜向对繁象的咽思想变化疼来了臣:现株在需贩要给籍被加洲数添好加一厨个权胖重值嘴;但生是以交前的欢加法改器仍俗需保则留,困因为锅还有施一部践分代榆码会应使用委它。思路鸣:开发棍新的茄加法运器CL矿We痛ig狸ht纸in然gA向dd墨er,让济其从CL思Ad乱de爆r继承代码1.矿6加法抗器例漠子版本3与版芹本2的比穴较版本3和版熊本2都实搏现了惯数据测和操推纵数猫据的总方法脾的封良装当引项入带里权重规的加浸法器瓶时,骡版本3做到矿了代命码的词封闭迎性,迟即能睡封装停变化季点vo专id慰f划un抚c(步CL境Ad牺de唐r嘉*p滤Ad腐de呼r){……舍……念……哲…pA健dd虑er录->诞Ad务d(寒5)喷;……玩……胁……铺…}当增凉加带秆权重恒加法蚕器时镰,并赔不需千要修哲改fu球nc的代蛮码加法谱器例凳子版本4:基淘于接武口的森思想需要旦实现丑一个尼加法闸器:宜在这贞个加诸法器弓中,太已经论保存幸了被臭加数摘;现挥在需垃要传雕递加退数给卸这个恳加法侵器,糊以让亮其返劝回加絮法计铁算结钟果。普通罗加法掏器的醉被加辞数,哄必须平是非肯负的洲整数凤,而献带权显重的巷加法恰器的肃被加调数,婶没有自任何辉限制思路桥:定佣义一黄个加绩法接蜓口的港抽象战类,厉然后默让普杀通加桌法器刻和带唯权重秤的加诞法器席从这攻个抽池象类斯派生代码1.累7加法纪器例帽子版本4与版赶本3的比予较版本4和版禽本3都实亩现了真数据揉和操酿纵数眠据的删方法盆的封垮装当引优入带躁权重醋的加延法器醉时,鹅版本4和版平本3都能赵做到系代码姥的封这闭性衔,即承能封饲装这武一变皂化点但当凤限制种普通寨加法夕器被汗加数暮为非格负时精,版肿本3无法感应对肾,而但版本4可以腹封装蛛这一咳变化奔点。殿为什秀么?版本4的耦荐合度锈小于证版本3继承眨是一事种强淋耦合杂的关卡系,熄耦合毕于基美类的丑接口体、耦雪合于繁基类仓的实游现加法执器例兽子——加法通器的烛架构版本4虽然好也是钢继承讨,但IL杏Ad捡de龄r只是绿一个赚抽象才类,理只定栽义了窄接口乒,没眠有实途现显然塌版本4的耦艺合度学小于罩版本3另一搂种说控法:张架构部设计洒就是叉一个严解耦初的过吼程加法化器例当子版本5:基初于接吸口的藏思想颤的模弯板实晌现没有迎虚函设数,汗静态躲的多需态代码1.税8如何瞒增加蛙新的它加法烈器?对于俱模板即代码刚,模交板参尸数演尝绎是旧比较猫好的怎阅读撕方法版本6:面茂向方尤面的禁思想靠增轨加基管类来勤扩展蔑加法蚀器,普而不区是增个加派痰生类卧扩展掀加法上器代码1.其9如何膝增加叛新的呜加法叼器?加法旦器例极子何为滔方面敞?CL股No询rm窑al泄Im醒pl、CL高We鞋ig台ht焦in盖gI勿mp眨l,以换及以酸后可淡能新筝增的CL静**马*I趴mp挂l,实藏际上渣代表四了如犁何进估行加狠法运玻算这愧一方轰面的扶问题催,是而对加源法运蛮算的境抽象假设肥现在麦需要苏在加耗法运毯算之索前,阻对加炕法器训进行惊安全炕性检亚查,魂而检协查的馆方法收又多析种多固样。安全睬性检驶查就姑代表嚷了加袜法器谈另一恋方面身的问碑题。宫这样缎一来礼加法泰器就扮需要矮两个秀模板源参数制,一灿个代羡表如拘何进缴行加错法运柳算的档抽象龟,另听一个菜代表搬如何竖进行菊安全剥性检饼查的解抽象加法茫器的衰小结结构缩慧化思辣想实鞭现的镜加法馅器,欧没有沸做到跪封装获,也旁不能巷容纳萌变化亚点;基于定对象俊的方刃法进闸了一奸步,甩它所粪实现龄的加鞭法器仔做到抢了封针装,庭但没北有容番纳变体化点脊;而面棒向对肚象方确法所饶实现宣的加壮法器加,则故做到闷了上悉述两祸点;基于忆接口倦的设伯计方析法,投则更源进了遗一步钉,不匙仅实冬现了饥变化杯点的望封装扰,还贤降低峡了代职码的屑耦合枣度,朴提高垦了扩郊展性班。另外烫,本认节也明给出太了两虚种基剂于模摇板的看加法库器实仇现。极它们逗与前读面提狮到的征几种膜方法效孰优罗孰劣洪,则仅是仁皇者见帆仁智才者见泰智了创,不俊同的参场景彩可能尝会有图不同陷的答射案。总体母的学策习方察法——系统济观两层层映射海的重冬要性高级头语言底层茶物理欧模型软件此架构核心课程及课程设计猜测、实证、构建第一秧讲资前言教学落目的课程抛主要蚊内容吨及安愤排学习挺方法学习套资料皱推荐编程起环境既介绍学习资料屈推荐学习驱中的愁困惑漫无股目的君、缺奴乏指票导,房诚不知雄道该垫怎么残样学茶习基本历的方格法看书糊+实刊践方向浩不明掌确72学习资料谎推荐高度火重视持语言惜的学倍习学好C和C+基+,暂臣时不遥要盲疯目学Ja蚊va等语祥言,千限制胁今后拆的技春术道迫路C和C+极+程序栋贴近光机器可(大勿多数踏操作尘系统碎都是供基于C的)痰、高坟性能扑,将链使你煌更能灿深入碗理解祖计算立机系挖统和永算法木,在美技术赌道路赞上走许得更浙远语言贡的学竞习不祥仅仅宴是语何法的捞学习栽,最信主要劳的是匆其背捐后蕴沈藏的绵程序烤设计瞎思想叙、软闸件架培构思佣想的顺学习要知拆道这腔些思控想的锄来龙库去脉到了究一定缸程度龄后,绝保持轰每年坊都能也学种翼新语雾言,货为什据么?脉(有灭些思其想是洲某种待语言稼特有蠢的)73书籍誉推荐贿(假竖定有滑基本C基础悟)深入踩理解惊计算籍机系棚统C学习C陷阱遵与缺资陷C和指刘针基本C+邪+学习Es推se膀nt饲ia击l暮C+衔+Ef兄fe腔ct糠iv仰e效C+亮+Mo小re座E揪ff光ec稠ti畜ve条C天++C+胞+沉思李录中俩面向归对象守的部均分设计央模式运精解深入C+榜+学习深度土探索C+哲+对象盆模型74书籍殃推荐倾(假精定有狼基本C基础皂)模版用学习C+避+据Te衫mp监la体te:Co告mp枕le忆te匀G碎ui暴deMo邀de充rn迹C疤++蛛D祝es族ig碗n模版羞库学招习C+扒+标准折程序突库Ef滤fe乒ct坑iv论e依ST槐LST炕L源码迟剖析C+增+学习惰收工Ex返ce鸦pt傍io度na悉l拿C+弄+Mo敏re迷E盒xc腐ep绒ti乔on贼al梢C这++C算法至卷一占、卷闪二75学习资料则推荐语言副到了宴一定态程度梨,可贵以进宪行系骆统的锯学习建议给首先校学习Wi锈nd仍ow修s操作猪系统Wi委nd盈ow万s比Li刘nu跃x先进否(内躬核结胞构,挤线程猾)学习wi海nd劣ow涂s能尽骗快熟命悉先呼进的背软件池架构超(各骗种架前构库胳,天蓝生的碰消息季循环补观察跌者)76Wi鸣nd抚ow位s学习盏书籍椅推荐Wi圆nd倚ow屿sA仆PI学习Pr贩og瞧ra宗mm们in揪g根wi滴nd胀ow话s(上葱下册雨)Wi般nd可ow踩s核心鹊编程MF渗C学习MF狡C基本息使用跨的学扫习深入正浅出MF到CCO催M学习CO暗M原理逆与应烟用AT免L恋In鱼te讽rn沉al宵s77学习资料时推荐之后慰,可教进行Li态nu摸x系统王的学绳习Li咏nu幅x系统乔操作鸟哥界的Li纪nu冷x私房谜菜:奋基础搞学习富篇鸟哥嘱的Li姐nu喉x私房葡菜:普服务嘴器架码设篇Li易nu你x系统AP乔IUn棚ix环境翠高级岭编程Un沃ix网络晚编程阀卷一唤、卷范二C+滨+网络边编程悦卷1、卷2AC斥E程序蛾员指艘南学习资料鱼推荐Li略nu谷x内核挽学习一定得要先缘瑞学Li身nu岔x设备甲驱动国编程学习甚内核饭源代梨码《L拜in验ux内核泼完全骑剖析恳--犁基于0.宏12内核》学习乱内核甩源代妄码,议要有钢方向作性。文件货系统网络要系统79学习资料趣推荐在li未nu首x内核幻玉学习它到一话定程贱度后差,可筑深入侄学习伍操作窗系统80捏X8云6汇编城语言嫂程序驴设计恭教程自己煌动手男写操坦作系分统(默第二侮版:or壳an容ge喝’s一个团操作怠系统阔的实说现)此时配,可棉根据须需要龟选择圆性的偶学习.N费ET、Ja鞋va等平评台第一革讲辅前言教学绍目的课程博主要凡内容沾及安挖排学习乘方法学习缠资料车推荐编程柿环境匀介绍Li基nu挎x操作跌系统臂的安勿装本课

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论