<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<meta name="generator" content="pdf2htmlEX">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<link rel="stylesheet" href="https://static.pudn.com/base/css/base.min.css">
<link rel="stylesheet" href="https://static.pudn.com/base/css/fancy.min.css">
<link rel="stylesheet" href="https://static.pudn.com/prod/directory_preview_static/627d583e9b6e2b6d5523314e/raw.css">
<script src="https://static.pudn.com/base/js/compatibility.min.js"></script>
<script src="https://static.pudn.com/base/js/pdf2htmlEX.min.js"></script>
<script>
try{
pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});
}catch(e){}
</script>
<title></title>
</head>
<body>
<div id="sidebar" style="display: none">
<div id="outline">
</div>
</div>
<div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/627d583e9b6e2b6d5523314e/bg1.jpg"><div class="t m0 x1 h2 y1 ff1 fs0 fc0 sc0 ls0 ws0">安徽高新嵌入式教育<span class="_ _0"></span>中心<span class="ff2"> <span class="_"> </span> <span class="_"> </span>sk<span class="_ _0"></span>yino1<span class="_"> </span><span class="ff1">整理</span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _1"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span><span class="ff1">希望能<span class="_ _0"></span>给你带来光明的前<span class="_ _0"></span>途<span class="ff2"> </span></span></span></div><div class="t m0 x2 h3 y2 ff2 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span>Qq:<span class="_ _0"></span>912886544 <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span>www<span class="_ _3"></span>.embedc<span class="_ _0"></span>n.co<span class="_ _0"></span>m </div><div class="t m0 x3 h3 y3 ff2 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x1 h3 y4 ff2 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x1 h4 y5 ff1 fs2 fc0 sc1 ls0 ws0">找工作感言<span class="_ _4"></span><span class="ff3 sc0"> </span></div><div class="t m0 x1 h2 y6 ff2 fs0 fc0 sc0 ls0 ws0"> </div><div class="t m0 x4 h5 y7 ff1 fs0 fc0 sc0 ls0 ws0">学生该找工作了,<span class="_ _3"></span>天天到处<span class="_ _0"></span>奔波,<span class="_ _3"></span>最让人伤心的是<span class="_ _0"></span>求职未果,<span class="_ _3"></span>真的,<span class="_ _3"></span>还未步入职业生<span class="_ _0"></span>涯,</div><div class="t m0 x1 h5 y8 ff1 fs0 fc0 sc0 ls0 ws0">已经身心疲倦了,<span class="_ _5"></span>好累!<span class="_ _5"></span>现在求职的状态<span class="_ _0"></span>就是高不成<span class="_ _0"></span>低不就,<span class="_ _5"></span>与专业无关的职业很多<span class="_ _0"></span>,<span class="_ _5"></span>但不</div><div class="t m0 x1 h5 y9 ff1 fs0 fc0 sc0 ls0 ws0">想去做,<span class="_ _5"></span>因为觉得在其他行业中<span class="_ _0"></span>找不到乐趣,<span class="_ _5"></span>也体现<span class="_ _0"></span>不了价值,<span class="_ _5"></span>而专业方面的职业也<span class="_ _0"></span>有,<span class="_ _5"></span>但</div><div class="t m0 x1 h5 ya ff1 fs0 fc0 sc0 ls0 ws0">是有好多机会都与擦<span class="_ _0"></span>肩而过,<span class="_ _5"></span>由于<span class="_ _0"></span>知识面的狭窄,<span class="_ _6"></span>很难通过笔试<span class="_ _0"></span>那一关。<span class="_ _6"></span>在网上看了很多招</div><div class="t m0 x1 h5 yb ff1 fs0 fc0 sc0 ls0 ws0">聘信息,<span class="_ _7"></span>有很多职位都望而<span class="_ _0"></span>生畏,<span class="_ _7"></span>其本质原因就是<span class="_ _0"></span>知识面不广<span class="_ _0"></span>,<span class="_ _7"></span>实践经验不够丰富。<span class="_ _7"></span>半个月,</div><div class="t m0 x1 h2 yc ff1 fs0 fc0 sc0 ls0 ws0">后就像无头苍蝇,到<span class="_ _0"></span>处乱撞,现在需要<span class="_ _0"></span>静下心来仔细<span class="_ _0"></span>思考一下!<span class="ff2"> </span></div><div class="t m0 x4 h5 yd ff1 fs0 fc0 sc0 ls0 ws0">对于找工作,是不是也应该换个角度去考虑呢?总结屡面屡败的原因,最核心的就是两</div><div class="t m0 x1 h5 ye ff1 fs0 fc0 sc0 ls0 ws0">方面的问题,<span class="_ _5"></span>一是笔试,<span class="_ _3"></span>二是实践经验。<span class="_ _5"></span>个人认为笔<span class="_ _0"></span>试最重要,<span class="_ _3"></span>如果笔试成<span class="_ _0"></span>绩排在前面,<span class="_ _3"></span>在</div><div class="t m0 x1 h5 yf ff1 fs0 fc0 sc0 ls0 ws0">随后的面试中,<span class="_ _5"></span>压力就非常小。<span class="_ _6"></span>现在市面上有流行的<span class="_ _0"></span>程序员面试宝典,<span class="_ _5"></span>程序面试宝典<span class="_ _0"></span>,<span class="_ _5"></span>可惜</div><div class="t m0 x1 h2 y10 ff1 fs0 fc0 sc0 ls0 ws0">不知为什么,错误太多<span class="ff2">,</span>而且覆盖面不广,这里参加<span class="_ _4"></span>的笔试、面试题,以及一些资料上的经</div><div class="t m0 x1 h2 y11 ff1 fs0 fc0 sc0 ls0 ws0">典题目进行汇总,整<span class="_ _0"></span>理为<span class="_ _8"> </span><span class="ff2">120<span class="_"> </span></span>多个。希<span class="_ _0"></span>望对大家找工<span class="_ _0"></span>作有所帮助,如有疑<span class="_ _0"></span>问,谢谢!<span class="ff2"> </span></div><div class="t m0 x4 h2 y12 ff2 fs0 fc0 sc0 ls0 ws0"> <span class="_ _9"> </span> <span class="_ _a"> </span> <span class="_ _a"> </span> <span class="_ _a"> </span> <span class="_ _b"> </span> <span class="_ _a"> </span> <span class="_ _a"> </span> <span class="_ _a"> </span> <span class="_ _b"> </span> <span class="_ _a"> </span> <span class="_ _a"> </span> <span class="_ _b"> </span><span class="ff1">你真诚的朋友:左老<span class="_ _0"></span>师<span class="ff2"> </span></span></div><div class="t m0 x1 h2 y13 ff2 fs0 fc0 sc0 ls0 ws0"> </div><div class="t m0 x1 h4 y14 ff3 fs2 fc0 sc0 ls0 ws0">1.new<span class="ff1 sc1">、<span class="_ _4"></span></span>d<span class="_ _0"></span>elete<span class="ff1 sc1">、<span class="_ _4"></span></span>mall<span class="_ _0"></span>oc<span class="ff1 sc1">、<span class="_ _4"></span></span>free<span class="_ _8"> </span><span class="ff1 sc1">关系<span class="_ _4"></span></span> </div><div class="t m0 x5 h2 y15 ff2 fs0 fc0 sc0 ls0 ws0">de<span class="_ _0"></span>l<span class="_ _4"></span>e<span class="_ _0"></span>te<span class="_ _1"> </span><span class="ff1">会调用对象的析构函数</span>,<span class="ff1">和<span class="_ _1"> </span></span>n<span class="_ _0"></span>ew<span class="_ _1"> </span><span class="ff1">对应<span class="_ _1"> </span></span>free<span class="_ _2"> </span><span class="ff1">只会释放内存,<span class="_ _c"></span><span class="ff2">ne<span class="_ _0"></span>w<span class="_ _1"> </span><span class="ff1">调用构造函数。<span class="_ _c"></span><span class="ff2">m<span class="_ _0"></span>alloc</span></span></span></span></div><div class="t m0 x1 h2 y16 ff1 fs0 fc0 sc0 ls0 ws0">与<span class="_ _8"> </span><span class="ff2">free<span class="_ _1"> </span></span>是<span class="_ _8"> </span><span class="ff2">C++/C<span class="_"> </span></span>语言的标准<span class="_ _0"></span>库函数,<span class="_ _6"></span><span class="ff2">ne<span class="_ _0"></span>w/delete<span class="_ _1"> </span><span class="ff1">是<span class="_ _8"> </span></span>C++<span class="ff1">的运算符。<span class="_ _6"></span>它们都可用于申<span class="_ _0"></span>请动态内</span></span></div><div class="t m0 x1 h2 y17 ff1 fs0 fc0 sc0 ls0 ws0">存和释放内存。<span class="_ _d"></span>对于非内部数据<span class="_ _0"></span>类型的对象而言,<span class="_ _d"></span>光<span class="_ _0"></span>用<span class="_ _8"> </span><span class="ff2">m<span class="_ _0"></span>aloc/free<span class="_"> </span><span class="ff1">无法满足动态对象<span class="_ _0"></span>的要求。</span></span></div><div class="t m0 x1 h5 y18 ff1 fs0 fc0 sc0 ls0 ws0">对<span class="_ _4"></span>象<span class="_ _e"></span>在<span class="_ _4"></span>创<span class="_ _e"></span>建<span class="_ _4"></span>的<span class="_ _e"></span>同<span class="_ _4"></span>时<span class="_ _e"></span>要<span class="_ _4"></span>自<span class="_ _4"></span>动<span class="_ _e"></span>执<span class="_ _4"></span>行<span class="_ _e"></span>构<span class="_ _4"></span>造<span class="_ _e"></span>函<span class="_ _4"></span>数<span class="_ _4"></span>,<span class="_ _e"></span>对<span class="_ _4"></span>象<span class="_ _e"></span>在<span class="_ _4"></span>消<span class="_ _4"></span>亡<span class="_ _e"></span>之<span class="_ _4"></span>前<span class="_ _e"></span>要<span class="_ _4"></span>自<span class="_ _e"></span>动<span class="_ _4"></span>执<span class="_ _e"></span>行<span class="_ _4"></span>析<span class="_ _4"></span>构<span class="_ _e"></span>函<span class="_ _4"></span>数<span class="_ _e"></span>。<span class="_ _4"></span>由<span class="_ _4"></span>于</div><div class="t m0 x1 h2 y19 ff2 fs0 fc0 sc0 ls0 ws0">m<span class="_ _0"></span>a<span class="_ _4"></span>llo<span class="_ _0"></span>c/free<span class="_"> </span><span class="ff1">是库函数而不是运算符<span class="_ _0"></span>,<span class="_ _3"></span>不<span class="_ _0"></span>在编译器控制<span class="_ _0"></span>权限之内,<span class="_ _5"></span>不能够把执行<span class="_ _0"></span>构造函数和析</span></div><div class="t m0 x1 h2 y1a ff1 fs0 fc0 sc0 ls0 ws0">构函数的任务强加于<span class="_ _1"> </span><span class="ff2">m<span class="_ _0"></span>alloc/f<span class="_ _0"></span>re<span class="_ _4"></span>e<span class="_ _0"></span><span class="ff1">。<span class="_ _f"></span>因此<span class="_ _8"> </span><span class="ff2">C++</span>语言需要一个能完成<span class="_ _0"></span>动态内存分配和初<span class="_ _0"></span>始化工作</span></span></div><div class="t m0 x1 h2 y1b ff1 fs0 fc0 sc0 ls0 ws0">的运算符<span class="_ _10"> </span><span class="ff2">ne<span class="_ _0"></span>w<span class="ff1">,以及一个能完成<span class="_ _0"></span>清理与释放内存工<span class="_ _0"></span>作的运算符<span class="_ _10"> </span><span class="ff2">d<span class="_ _0"></span>elete<span class="_ _0"></span><span class="ff1">。注意<span class="_ _10"> </span><span class="ff2">new/delet<span class="_ _0"></span>e<span class="_ _10"> </span><span class="ff1">不是</span></span></span></span></span></span></div><div class="t m0 x1 h2 y1c ff1 fs0 fc0 sc0 ls0 ws0">库函数。<span class="ff2"> </span></div><div class="t m0 x1 h4 y1d ff3 fs2 fc0 sc0 ls0 ws0">2.delete<span class="_ _10"> </span><span class="ff1 sc1">与</span> <span class="_ _8"> </span>delete []<span class="ff1 sc1">区别<span class="_ _4"></span></span> </div><div class="t m0 x5 h2 y1e ff2 fs0 fc0 sc0 ls0 ws0">de<span class="_ _0"></span>l<span class="_ _4"></span>e<span class="_ _0"></span>te<span class="_ _11"> </span><span class="ff1">只<span class="_ _4"></span>会<span class="_ _4"></span>调<span class="_ _4"></span>用<span class="_ _4"></span>一<span class="_ _4"></span>次<span class="_ _4"></span>析<span class="_ _4"></span>构<span class="_ _4"></span>函<span class="_ _4"></span>数<span class="_ _4"></span>,<span class="_ _4"></span>而<span class="_ _11"> </span></span>dele<span class="_ _0"></span>t<span class="_ _4"></span>e[]<span class="_ _4"></span><span class="ff1">会<span class="_ _4"></span>调<span class="_ _4"></span>用<span class="_ _4"></span>每<span class="_ _4"></span>一<span class="_ _4"></span>个<span class="_ _4"></span>成<span class="_ _4"></span>员<span class="_ _4"></span>的<span class="_ _4"></span>析<span class="_ _4"></span>构<span class="_ _4"></span>函<span class="_ _4"></span>数<span class="_ _4"></span>。<span class="_ _4"></span>在<span class="_ _11"> </span></span>Mo<span class="_ _0"></span>re </div><div class="t m0 x1 h2 y1f ff2 fs0 fc0 sc0 ls0 ws0">Ef<span class="_ _0"></span>fective<span class="_ _0"></span> <span class="_"> </span> <span class="_"> </span>C++<span class="ff1">中有更为详细的解释:<span class="_ _12"></span>“当<span class="_ _8"> </span><span class="ff2">de<span class="_ _0"></span>lete<span class="_ _1"> </span><span class="ff1">操作<span class="_ _4"></span>符用于数组<span class="_ _0"></span>时,<span class="_ _5"></span>它为每个数组<span class="_ _0"></span>元素调用</span></span></span></div><div class="t m0 x1 h2 y20 ff1 fs0 fc0 sc0 ls0 ws0">析构函数,<span class="_ _5"></span>然后调用<span class="_ _8"> </span><span class="ff2">op<span class="_ _0"></span>eratordelete<span class="_ _1"> </span><span class="ff1">来释放内存。<span class="_ _c"></span>”<span class="_ _5"></span><span class="ff2">delete<span class="_ _1"> </span><span class="ff1">与<span class="_ _8"> </span></span>New<span class="_ _1"> </span><span class="ff1">配套,<span class="_ _3"></span><span class="ff2">d<span class="_ _0"></span>elete []<span class="ff1">与<span class="_ _8"> </span></span>new<span class="_ _0"></span> []<span class="_ _4"></span><span class="ff1">配套</span> </span></span></span></span></span></div><div class="t m0 x5 h2 y21 ff2 fs0 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span>MemT<span class="_ _3"></span>est*m<span class="_ _0"></span>T<span class="_ _0"></span>est1=n<span class="_ _0"></span>ewMemT<span class="_ _13"></span>est[10]; </div><div class="t m0 x5 h2 y22 ff2 fs0 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span>MemT<span class="_ _3"></span>est*m<span class="_ _0"></span>T<span class="_ _13"></span>est2=<span class="_ _4"></span>n<span class="_ _0"></span>ewMem<span class="_ _0"></span>T<span class="_ _0"></span>est; </div><div class="t m0 x5 h2 y23 ff2 fs0 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span>in<span class="_ _0"></span>t<span class="_ _4"></span>*p<span class="_ _0"></span>Int1=newint[10]; </div><div class="t m0 x5 h2 y24 ff2 fs0 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span>in<span class="_ _0"></span>t<span class="_ _4"></span>*p<span class="_ _0"></span>Int2=newint; <span class="_ _1"> </span> </div><div class="t m0 x5 h2 y25 ff2 fs0 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span>de<span class="_ _0"></span>l<span class="_ _4"></span>e<span class="_ _0"></span>te[]pInt1; <span class="_"> </span> <span class="_"> </span>//-1- </div><div class="t m0 x5 h2 y26 ff2 fs0 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span>de<span class="_ _0"></span>l<span class="_ _4"></span>e<span class="_ _0"></span>te[]pInt2; <span class="_"> </span> <span class="_"> </span>//-2- </div><div class="t m0 x5 h2 y27 ff2 fs0 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span>de<span class="_ _0"></span>l<span class="_ _4"></span>e<span class="_ _0"></span>te[]<span class="_ _4"></span>m<span class="_ _0"></span>T<span class="_ _3"></span>es<span class="_ _4"></span>t1;/<span class="_ _0"></span>/-3- </div><div class="t m0 x5 h2 y28 ff2 fs0 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span>de<span class="_ _0"></span>l<span class="_ _4"></span>e<span class="_ _0"></span>te[]<span class="_ _4"></span>m<span class="_ _0"></span>T<span class="_ _3"></span>es<span class="_ _4"></span>t2;/<span class="_ _0"></span>/-4- </div><div class="t m0 x5 h2 y29 ff2 fs0 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span><span class="ff1">在</span>-4-<span class="ff1">处报错<span class="_ _0"></span>。<span class="ff2"> </span></span></div><div class="t m0 x5 h2 y2a ff1 fs0 fc0 sc0 ls0 ws0">这就说明:<span class="_ _5"></span>对于内建简单<span class="_ _0"></span>数据类型,<span class="_ _6"></span><span class="ff2">delete<span class="_ _1"> </span><span class="ff1">和<span class="_ _8"> </span></span>delete[]<span class="ff1">功能是相同<span class="_ _0"></span>的。<span class="_ _5"></span>对于自定义的复<span class="_ _0"></span>杂</span></span></div><div class="t m0 x1 h2 y2b ff1 fs0 fc0 sc0 ls0 ws0">数据类型,<span class="_ _6"></span><span class="ff2">d<span class="_ _0"></span>ele<span class="_ _0"></span>t<span class="_ _4"></span>e<span class="_ _1"> </span><span class="ff1">和<span class="_ _8"> </span></span>dele<span class="_ _0"></span>t<span class="_ _4"></span>e[]<span class="ff1">不能互用<span class="_ _0"></span>。<span class="_ _6"></span><span class="ff2">dele<span class="_ _0"></span>t<span class="_ _4"></span>e<span class="_ _0"></span>[]<span class="_ _4"></span><span class="ff1">删除一<span class="_ _0"></span>个数组,<span class="_ _6"></span><span class="ff2">de<span class="_ _0"></span>lete<span class="_"> </span><span class="ff1">删除一个指针简单来<span class="_ _0"></span>说,</span></span></span></span></span></span></div><div class="t m0 x1 h2 y2c ff1 fs0 fc0 sc0 ls0 ws0">用<span class="_ _10"> </span><span class="ff2">ne<span class="_ _0"></span>w<span class="_ _10"> </span><span class="ff1">分配的内存用<span class="_ _10"> </span></span>d<span class="_ _0"></span>elete<span class="_ _10"> </span><span class="ff1">删除用<span class="_ _10"> </span></span>n<span class="_ _0"></span>ew[]<span class="ff1">分配的内存用<span class="_ _10"> </span></span>de<span class="_ _0"></span>lete[]<span class="ff1">删除<span class="_ _10"> </span></span>delete<span class="_ _0"></span>[]<span class="_ _4"></span><span class="ff1">会调用数组元<span class="_ _0"></span>素</span></span></div><div class="t m0 x1 h2 y2d ff1 fs0 fc0 sc0 ls0 ws0">的析构函数。内部数<span class="_ _0"></span>据类型没有析构函<span class="_ _0"></span>数,所以问题<span class="_ _0"></span>不大。如果你在用<span class="_ _1"> </span><span class="ff2">de<span class="_ _0"></span>lete<span class="_"> </span><span class="ff1">时没用括号,</span></span></div><div class="t m0 x3 h6 y2e ff4 fs3 fc1 sc0 ls0 ws0">Generated by Foxit PDF Creator © Foxit Software</div><div class="t m0 x3 h6 y2f ff4 fs3 fc2 sc0 ls0 ws0">http://www.foxitsoftware.com For evaluation only.</div></div><div class="pi" data-data='{"ctm":[1.612252,0.000000,0.000000,1.612252,0.000000,0.000000]}'></div></div>
</body>
</html>
<div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/627d583e9b6e2b6d5523314e/bg2.jpg"><div class="t m0 x1 h2 y1 ff1 fs0 fc0 sc0 ls0 ws0">安徽高新嵌入式教育<span class="_ _0"></span>中心<span class="ff2"> <span class="_"> </span> <span class="_"> </span>sk<span class="_ _0"></span>yino1<span class="_"> </span><span class="ff1">整理</span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _1"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span><span class="ff1">希望能<span class="_ _0"></span>给你带来光明的前<span class="_ _0"></span>途<span class="ff2"> </span></span></span></div><div class="t m0 x2 h3 y2 ff2 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span>Qq:<span class="_ _0"></span>912886544 <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span>www<span class="_ _3"></span>.embedc<span class="_ _0"></span>n.co<span class="_ _0"></span>m </div><div class="t m0 x3 h3 y3 ff2 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x1 h3 y4 ff2 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x1 h2 y30 ff2 fs0 fc0 sc0 ls0 ws0">de<span class="_ _0"></span>l<span class="_ _4"></span>e<span class="_ _0"></span>te<span class="_"> </span><span class="ff1">就会认为指向的是单个对<span class="_ _0"></span>象,否则,它就<span class="_ _0"></span>会认为指向的是<span class="_ _0"></span>一个数组。<span class="ff2"> </span></span></div><div class="t m0 x1 h4 y31 ff3 fs2 fc0 sc0 ls0 ws0">3.C C++ JAVA<span class="_ _8"> </span><span class="ff1 sc1">共<span class="_ _4"></span>同点,不同之处<span class="_ _4"></span>?</span> </div><div class="t m0 x1 h4 y32 ff3 fs2 fc0 sc0 ls0 ws0">4.<span class="ff1 sc1">继承优缺<span class="_ _4"></span>点。</span> </div><div class="t m0 x5 h5 y33 ff1 fs0 fc0 sc0 ls0 ws0">类继承是在编译时刻<span class="_ _0"></span>静态定义的,<span class="_ _c"></span>且可直接使用,<span class="_ _c"></span>类继<span class="_ _0"></span>承可以较方便地改变<span class="_ _0"></span>父类的实现。</div><div class="t m0 x1 h5 y34 ff1 fs0 fc0 sc0 ls0 ws0">但是类继承也有一些<span class="_ _0"></span>不足之处。<span class="_ _6"></span>首先,<span class="_ _6"></span>因为继承在编译时刻就定<span class="_ _0"></span>义了,<span class="_ _6"></span>所以无法在运行时刻</div><div class="t m0 x1 h5 y35 ff1 fs0 fc0 sc0 ls0 ws0">改变从父类继承的实<span class="_ _0"></span>现。<span class="_ _6"></span>更糟的是,<span class="_ _5"></span>父类通常至<span class="_ _0"></span>少定义了子类的<span class="_ _0"></span>部分行为,<span class="_ _6"></span>父类的任何改变</div><div class="t m0 x1 h5 y36 ff1 fs0 fc0 sc0 ls0 ws0">都可能影响子类的行<span class="_ _0"></span>为。<span class="_ _7"></span>如果继承下来的实现不适<span class="_ _0"></span>合解决新的问<span class="_ _0"></span>题,<span class="_ _7"></span>则父类必须重写或被其</div><div class="t m0 x1 h2 y37 ff1 fs0 fc0 sc0 ls0 ws0">他更适合的类替换。<span class="_ _0"></span>这种依赖关系限制<span class="_ _0"></span>了灵活性并最<span class="_ _0"></span>终限制了复用性。<span class="ff2"> </span></div><div class="t m0 x5 h2 y38 ff1 fs0 fc0 sc0 ls0 ws0">(待补充)<span class="ff2"> </span></div><div class="t m0 x5 h2 y39 ff2 fs0 fc0 sc0 ls0 ws0"> </div><div class="t m0 x1 h4 y3a ff3 fs2 fc0 sc0 ls0 ws0">5.C++<span class="ff1 sc1">有哪些性质(面<span class="_ _4"></span>向对象特点)<span class="_ _4"></span></span> </div><div class="t m0 x1 h2 y3b ff1 fs0 fc0 sc0 ls0 ws0">封装,继承和多态。<span class="ff2"> </span></div><div class="t m0 x5 h5 y3c ff1 fs0 fc0 sc0 ls0 ws0">在面向对象程序设计<span class="_ _0"></span>语言中,<span class="_ _7"></span>封装是利用可重用成<span class="_ _0"></span>分构造软件系<span class="_ _0"></span>统的特性,<span class="_ _7"></span>它不仅支持</div><div class="t m0 x1 h5 y3d ff1 fs0 fc0 sc0 ls0 ws0">系统的可重用性,<span class="_ _7"></span>而且还有利于<span class="_ _0"></span>提高系统的可扩充<span class="_ _0"></span>性;<span class="_ _7"></span>消息传递可以实现发<span class="_ _0"></span>送一个通用的消</div><div class="t m0 x1 h2 y3e ff1 fs0 fc0 sc0 ls0 ws0">息而调用不同的方法<span class="_ _0"></span>;封装是实现信息<span class="_ _0"></span>隐蔽的一种技<span class="_ _0"></span>术,其目的是使类的<span class="_ _0"></span>定义和实现分离。<span class="_ _c"></span><span class="ff2"> </span></div><div class="t m0 x1 h4 y3f ff3 fs2 fc0 sc0 ls0 ws0">6.<span class="ff1 sc1">子类析构<span class="_ _4"></span>时要调用父类的析构函<span class="_ _4"></span>数吗?</span> </div><div class="t m0 x5 h5 y40 ff1 fs0 fc0 sc0 ls0 ws0">析构函数调用的次序<span class="_ _0"></span>是先派生类的析构<span class="_ _0"></span>后基类的析构<span class="_ _0"></span>,<span class="_ _14"></span>也就是说在基类的的析<span class="_ _0"></span>构调用的</div><div class="t m0 x1 h2 y41 ff1 fs0 fc0 sc0 ls0 ws0">时候<span class="ff2">,</span>派生类的信息已经全部销毁了定义一个对象时<span class="_ _4"></span>先调用基类的构造函数、然后调用派生</div><div class="t m0 x1 h5 y42 ff1 fs0 fc0 sc0 ls0 ws0">类的构造函数;<span class="_ _6"></span>析构的时候恰好相<span class="_ _0"></span>反:<span class="_ _6"></span>先调用派生类的析构函数、<span class="_ _6"></span>然后调用基<span class="_ _0"></span>类的析构函数</div><div class="t m0 x1 h2 y43 ff2 fs0 fc0 sc0 ls0 ws0">JA<span class="_ _5"></span>V<span class="_ _5"></span>A<span class="_ _1"> </span><span class="ff1">无析构函数深拷贝和浅拷<span class="_ _0"></span>贝<span class="ff2"> <span class="_"> </span> </span></span></div><div class="t m0 x1 h4 y44 ff3 fs2 fc0 sc0 ls0 ws0">7.<span class="ff1 sc1">多态,虚<span class="_ _4"></span>函数,纯虚函数<span class="_ _4"></span></span> </div><div class="t m0 x5 h2 y45 ff2 fs0 fc0 sc0 ls0 ws0"> </div><div class="t m0 x1 h4 y46 ff3 fs2 fc0 sc0 ls0 ws0">8.<span class="ff1 sc1">求下面函<span class="_ _4"></span>数的返回值(微软)<span class="_ _4"></span></span> </div><div class="t m0 x5 h2 y47 ff2 fs0 fc0 sc0 ls0 ws0">in<span class="_ _0"></span>t <span class="_ _4"></span>fu<span class="_ _0"></span>nc(x)<span class="_ _4"></span> <span class="_"> </span> </div><div class="t m0 x1 h2 y48 ff2 fs0 fc0 sc0 ls0 ws0">{ <span class="_"> </span> </div><div class="t m0 x1 h2 y49 ff2 fs0 fc0 sc0 ls0 ws0"> <span class="_"> </span>in<span class="_ _0"></span>t countx = 0; <span class="_"> </span> </div><div class="t m0 x1 h2 y4a ff2 fs0 fc0 sc0 ls0 ws0"> <span class="_"> </span>wh<span class="_ _0"></span>ile(x) <span class="_"> </span> </div><div class="t m0 x1 h2 y4b ff2 fs0 fc0 sc0 ls0 ws0"> <span class="_"> </span>{ <span class="_"> </span> </div><div class="t m0 x1 h2 y4c ff2 fs0 fc0 sc0 ls0 ws0"> <span class="_"> </span>co<span class="_ _0"></span>untx ++; <span class="_"> </span> </div><div class="t m0 x1 h2 y4d ff2 fs0 fc0 sc0 ls0 ws0"> <span class="_"> </span>x = x&<span class="_ _0"></span>(x-1); <span class="_"> </span> </div><div class="t m0 x1 h2 y4e ff2 fs0 fc0 sc0 ls0 ws0"> <span class="_"> </span>} <span class="_"> </span> </div><div class="t m0 x1 h2 y4f ff2 fs0 fc0 sc0 ls0 ws0"> <span class="_"> </span>retu<span class="_ _0"></span>rn countx; <span class="_ _1"> </span> </div><div class="t m0 x1 h2 y50 ff2 fs0 fc0 sc0 ls0 ws0">} <span class="_"> </span> </div><div class="t m0 x5 h2 y51 ff1 fs0 fc0 sc0 ls0 ws0">假定<span class="_ _8"> </span><span class="ff2">x = 9999</span>。<span class="ff2"> <span class="_"> </span></span>答<span class="_ _0"></span>案:<span class="ff2">8 </span></div><div class="t m0 x5 h2 y52 ff1 fs0 fc0 sc0 ls0 ws0">思路:将<span class="_ _8"> </span><span class="ff2">x<span class="_"> </span></span>转化为<span class="_ _1"> </span><span class="ff2">2<span class="_"> </span></span>进制,看<span class="_ _0"></span>含有的<span class="_ _8"> </span><span class="ff2">1<span class="_"> </span></span>的个数。<span class="ff2"> </span></div><div class="t m0 x1 h4 y53 ff3 fs2 fc0 sc0 ls0 ws0">9.<span class="ff1 sc1">什么是<span class="_ _4"></span></span>“<span class="_ _0"></span><span class="ff1 sc1">引<span class="_ _4"></span>用<span class="ff3 sc0">”</span>?申明和使用<span class="_ _4"></span><span class="ff3 sc0">“<span class="_ _0"></span><span class="ff1 sc1">引用<span class="_ _4"></span><span class="ff3 sc0">”<span class="_ _0"></span><span class="ff1 sc1">要注<span class="_ _4"></span>意哪些问题?<span class="_ _4"></span><span class="ff3 sc0"> </span></span></span></span></span></span></div><div class="t m0 x5 h2 y54 ff1 fs0 fc0 sc0 ls0 ws0">答:引用就是某个目标变量的<span class="ff2">“</span>别名<span class="ff2">”(alias)</span>,对应用<span class="_ _0"></span>的操作与对变量直接操作效果完全</div><div class="t m0 x3 h6 y2e ff4 fs3 fc1 sc0 ls0 ws0">Generated by Foxit PDF Creator © Foxit Software</div><div class="t m0 x3 h6 y2f ff4 fs3 fc2 sc0 ls0 ws0">http://www.foxitsoftware.com For evaluation only.</div></div><div class="pi" data-data='{"ctm":[1.612252,0.000000,0.000000,1.612252,0.000000,0.000000]}'></div></div>
<div id="pf3" class="pf w0 h0" data-page-no="3"><div class="pc pc3 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/627d583e9b6e2b6d5523314e/bg3.jpg"><div class="t m0 x1 h2 y1 ff1 fs0 fc0 sc0 ls0 ws0">安徽高新嵌入式教育<span class="_ _0"></span>中心<span class="ff2"> <span class="_"> </span> <span class="_"> </span>sk<span class="_ _0"></span>yino1<span class="_"> </span><span class="ff1">整理</span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _1"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span><span class="ff1">希望能<span class="_ _0"></span>给你带来光明的前<span class="_ _0"></span>途<span class="ff2"> </span></span></span></div><div class="t m0 x2 h3 y2 ff2 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span>Qq:<span class="_ _0"></span>912886544 <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span>www<span class="_ _3"></span>.embedc<span class="_ _0"></span>n.co<span class="_ _0"></span>m </div><div class="t m0 x3 h3 y3 ff2 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x1 h3 y4 ff2 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x1 h5 y30 ff1 fs0 fc0 sc0 ls0 ws0">相同。<span class="_ _5"></span>申明一个引用的时候,<span class="_ _5"></span>切记要对其<span class="_ _0"></span>进行初始化<span class="_ _0"></span>。<span class="_ _5"></span>引用声明完毕后,<span class="_ _5"></span>相当于目标变量名</div><div class="t m0 x1 h5 y55 ff1 fs0 fc0 sc0 ls0 ws0">有两个名称,<span class="_ _6"></span>即该目标原名称和引<span class="_ _0"></span>用名,<span class="_ _6"></span>不能再把该引用名作为<span class="_ _0"></span>其他变量名的别名。<span class="_ _6"></span>声明一</div><div class="t m0 x1 h5 y56 ff1 fs0 fc0 sc0 ls0 ws0">个引用,<span class="_ _6"></span>不是新定义了一个变量,<span class="_ _6"></span>它只表示该引<span class="_ _0"></span>用名是目标变量<span class="_ _0"></span>名的一个别名,<span class="_ _6"></span>它本身不是</div><div class="t m0 x1 h5 y57 ff1 fs0 fc0 sc0 ls0 ws0">一种数据类型,<span class="_ _6"></span>因此引用本身不占<span class="_ _0"></span>存储单元,<span class="_ _6"></span>系统也不给引用分<span class="_ _0"></span>配存储单元。<span class="_ _6"></span><span class="fc2">不能建立数组</span></div><div class="t m0 x1 h2 y58 ff1 fs0 fc2 sc0 ls0 ws0">的引用。<span class="ff2"> </span></div><div class="t m0 x1 h4 y59 ff3 fs2 fc0 sc0 ls0 ws0">10.<span class="ff1 sc1">将<span class="_ _4"></span></span>“<span class="_ _0"></span><span class="ff1 sc1">引用<span class="_ _4"></span><span class="ff3 sc0">”<span class="_ _0"></span><span class="ff1 sc1">作为<span class="_ _4"></span>函数参数有哪些特点?<span class="_ _4"></span><span class="ff3 sc0"> </span></span></span></span></div><div class="t m0 x5 h2 y5a ff1 fs0 fc0 sc0 ls0 ws0">(<span class="ff2">1</span>)传递引用给函数与传递<span class="_ _0"></span>指针的效果是一样的。<span class="_ _0"></span>这时,被调函数的形参就成<span class="_ _0"></span>为原来</div><div class="t m0 x1 h5 y5b ff1 fs0 fc0 sc0 ls0 ws0">主调函数中的实参变<span class="_ _0"></span>量或对象的一个别<span class="_ _0"></span>名来使用,<span class="_ _14"></span>所以在被调函<span class="_ _0"></span>数中对形参变量的<span class="_ _0"></span>操作就是</div><div class="t m0 x1 h2 y5c ff1 fs0 fc0 sc0 ls0 ws0">对其相应的目标对象<span class="_ _0"></span>(在主调函数中)<span class="_ _0"></span>的操作。<span class="ff2"> </span></div><div class="t m0 x5 h2 y5d ff1 fs0 fc0 sc0 ls0 ws0">(<span class="ff2">2</span>)使用引用传递函数的参<span class="_ _0"></span>数,在内存中并没有产<span class="_ _0"></span>生实参的副本,它是直接对<span class="_ _0"></span>实参操</div><div class="t m0 x1 h5 y5e ff1 fs0 fc0 sc0 ls0 ws0">作;<span class="_ _5"></span>而使用一般变量传递函数的<span class="_ _0"></span>参数,<span class="_ _5"></span>当发生函数调<span class="_ _0"></span>用时,<span class="_ _5"></span>需要给形参分配存储单元<span class="_ _0"></span>,<span class="_ _5"></span>形参</div><div class="t m0 x1 h5 y5f ff1 fs0 fc0 sc0 ls0 ws0">变量是实参变量的副<span class="_ _0"></span>本;<span class="_ _5"></span>如果传递的是对象,<span class="_ _5"></span>还将调<span class="_ _0"></span>用拷贝构造函数。<span class="_ _5"></span>因此,<span class="_ _5"></span>当参数传递的</div><div class="t m0 x1 h2 y60 ff1 fs0 fc0 sc0 ls0 ws0">数据较大时,用引用<span class="_ _0"></span>比用一般变量传递<span class="_ _0"></span>参数的效率和<span class="_ _0"></span>所占空间都好。<span class="ff2"> </span></div><div class="t m0 x5 h2 y61 ff1 fs0 fc0 sc0 ls0 ws0">(<span class="ff2">3</span>)使用指针作为函数的参<span class="_ _0"></span>数虽然也能达到与使用<span class="_ _0"></span>引用的效果,但是,在被调<span class="_ _0"></span>函数中</div><div class="t m0 x1 h2 y62 ff1 fs0 fc0 sc0 ls0 ws0">同样要给形参分配存储单元,且需要重复使用<span class="ff2">"*</span>指针变量名<span class="ff2">"</span>的形式进行运算,这很容易产</div><div class="t m0 x1 h5 y63 ff1 fs0 fc0 sc0 ls0 ws0">生错误且程序的阅读<span class="_ _0"></span>性较差;<span class="_ _6"></span>另一方面,<span class="_ _6"></span>在主调函数的调用点处,<span class="_ _6"></span>必须用变量<span class="_ _0"></span>的地址作为实</div><div class="t m0 x1 h2 y64 ff1 fs0 fc0 sc0 ls0 ws0">参。而引用更容易使<span class="_ _0"></span>用,更清晰。<span class="ff2"> </span></div><div class="t m0 x1 h4 y65 ff3 fs2 fc0 sc0 ls0 ws0">11.<span class="ff1 sc1">在什么时候<span class="_ _4"></span>需要使用</span>“<span class="ff1 sc1">常引用<span class="_ _4"></span></span>”<span class="_ _0"></span><span class="ff1 sc1">? <span class="_ _15"> </span><span class="ff3 sc0"> </span></span></div><div class="t m0 x5 h5 y66 ff1 fs0 fc0 sc0 ls0 ws0">如果既要利用引用提<span class="_ _0"></span>高程序的效率,<span class="_ _7"></span>又要保护传递<span class="_ _0"></span>给函数的数据<span class="_ _0"></span>不在函数中被改变,<span class="_ _f"></span>就</div><div class="t m0 x1 h2 y67 ff1 fs0 fc0 sc0 ls0 ws0">应使用常引用。常引<span class="_ _0"></span>用声明方式:<span class="ff2">c<span class="_ _0"></span>on<span class="_ _0"></span>st <span class="_"> </span><span class="ff1">类型标识符</span> <span class="_"> </span>&<span class="ff1">引用名</span>=<span class="ff1">目标变量名<span class="_ _0"></span>;<span class="ff2"> </span></span></span></div><div class="t m0 x5 h2 y68 ff1 fs0 fc0 sc0 ls0 ws0">例<span class="_ _8"> </span><span class="ff2">1 </span></div><div class="t m0 x5 h2 y69 ff2 fs0 fc0 sc0 ls0 ws0">in<span class="_ _0"></span>t a ; </div><div class="t m0 x5 h2 y6a ff2 fs0 fc0 sc0 ls0 ws0">con<span class="_ _0"></span>st int &ra=a; </div><div class="t m0 x5 h2 y6b ff2 fs0 fc0 sc0 ls0 ws0">ra=1; //<span class="ff1">错误</span> </div><div class="t m0 x5 h2 y6c ff2 fs0 fc0 sc0 ls0 ws0">a=1; //<span class="ff1">正确</span> <span class="_"> </span> </div><div class="t m0 x5 h2 y6d ff1 fs0 fc0 sc0 ls0 ws0">例<span class="_ _8"> </span><span class="ff2">2 </span></div><div class="t m0 x5 h2 y6e ff2 fs0 fc0 sc0 ls0 ws0">string<span class="_ _0"></span> foo( ); </div><div class="t m0 x5 h2 y6f ff2 fs0 fc0 sc0 ls0 ws0">void<span class="_ _0"></span> bar<span class="_ _4"></span>(strin<span class="_ _0"></span>g & s); <span class="_"> </span> </div><div class="t m0 x5 h2 y70 ff1 fs0 fc0 sc0 ls0 ws0">那么下面的表达式将<span class="_ _0"></span>是非法的:<span class="ff2"> </span></div><div class="t m0 x5 h2 y71 ff2 fs0 fc0 sc0 ls0 ws0">bar(foo<span class="_ _0"></span>( )<span class="_ _4"></span>); </div><div class="t m0 x5 h2 y72 ff2 fs0 fc0 sc0 ls0 ws0">bar("he<span class="_ _0"></span>ll<span class="_ _4"></span>o<span class="_ _0"></span> world"); <span class="_"> </span> </div><div class="t m0 x5 h2 y73 ff1 fs0 fc0 sc0 ls0 ws0">原因在于<span class="_ _8"> </span><span class="ff2">fo<span class="_ _0"></span>o( )<span class="ff1">和</span>"he<span class="_ _0"></span>ll<span class="_ _4"></span>o<span class="_ _0"></span> <span class="_ _4"></span>wo<span class="_ _0"></span>rld"<span class="ff1">串都会产生一个临时对<span class="_ _0"></span>象,<span class="_ _6"></span>而在<span class="_ _1"> </span><span class="ff2">C++</span>中,<span class="_ _6"></span>这<span class="_ _0"></span>些临时对象都</span></span></div><div class="t m0 x1 h2 y74 ff1 fs0 fc0 sc0 ls0 ws0">是<span class="_ _8"> </span><span class="ff2">con<span class="_ _0"></span>st<span class="_"> </span><span class="ff1">类型的。因此上面的表达式就<span class="_ _0"></span>是试图将一个<span class="_ _1"> </span><span class="ff2">c<span class="_ _0"></span>onst<span class="_"> </span><span class="ff1">类型的对象转换为<span class="_ _0"></span>非<span class="_ _8"> </span><span class="ff2">con<span class="_ _0"></span>st<span class="_"> </span><span class="ff1">类型,</span></span></span></span></span></span></div><div class="t m0 x1 h2 y75 ff1 fs0 fc0 sc0 ls0 ws0">这是非法的。引用型<span class="_ _0"></span>参数应该在能被定<span class="_ _0"></span>义为<span class="_ _8"> </span><span class="ff2">co<span class="_ _0"></span>nst<span class="_"> </span><span class="ff1">的情况下,尽量定义为<span class="_ _1"> </span></span>co<span class="_ _0"></span>nst <span class="_"> </span><span class="ff1">。</span> </span></div><div class="t m0 x1 h4 y76 ff3 fs2 fc0 sc0 ls0 ws0">12.<span class="ff1 sc1">将<span class="_ _4"></span></span>“<span class="_ _0"></span><span class="ff1 sc1">引用<span class="_ _4"></span><span class="ff3 sc0">”<span class="_ _0"></span><span class="ff1 sc1">作为<span class="_ _4"></span>函数返回值类型的格式、<span class="_ _4"></span>好处和需要遵守的规则<span class="_ _4"></span><span class="ff3 sc0">? </span></span></span></span></div><div class="t m0 x5 h2 y77 ff1 fs0 fc0 sc0 ls0 ws0">格式:类型标识符<span class="ff2"> <span class="_"> </span>&<span class="_ _0"></span><span class="ff1">函数名(形<span class="_ _0"></span>参列表及类型说明<span class="_ _0"></span>)<span class="ff2">{ //</span>函数体<span class="ff2"> <span class="_"> </span>} </span></span></span></div><div class="t m0 x5 h5 y78 ff1 fs0 fc0 sc0 ls0 ws0">好处:在内存中不产生被返<span class="_ _0"></span>回值的副本;<span class="_ _c"></span>(注意:正<span class="_ _0"></span>是因为这点原因,所以返回<span class="_ _0"></span>一个局</div><div class="t m0 x1 h5 y79 ff1 fs0 fc0 sc0 ls0 ws0">部变量的引用是不可<span class="_ _0"></span>取的。<span class="_ _6"></span>因为随着该局部变量生存<span class="_ _0"></span>期的结束,<span class="_ _6"></span>相应的引用也会失效,<span class="_ _6"></span>产生</div><div class="t m0 x1 h2 y7a ff2 fs0 fc0 sc0 ls0 ws0">run<span class="_ _0"></span>t<span class="_ _4"></span>im<span class="_ _0"></span>e error! <span class="_"> </span><span class="ff1">注意事项:</span> </div><div class="t m0 x5 h2 y7b ff1 fs0 fc0 sc0 ls0 ws0">(<span class="ff2">1</span>)<span class="_ _5"></span>不能返回局部变量<span class="_ _0"></span>的引用。<span class="_ _5"></span>这条可以参<span class="_ _0"></span>照<span class="_ _8"> </span><span class="ff2">Ef<span class="_ _0"></span>fec<span class="_ _0"></span>t<span class="_ _4"></span>ive<span class="_ _0"></span> C++[1]<span class="_ _4"></span><span class="ff1">的<span class="_ _1"> </span></span>Item 31<span class="ff1">。<span class="_ _5"></span>主要原因是</span></span></div><div class="t m0 x1 h2 y7c ff1 fs0 fc0 sc0 ls0 ws0">局部变量会在函数返<span class="_ _0"></span>回后被销毁,<span class="_ _6"></span>因此被返回的引用<span class="_ _0"></span>就成为了<span class="ff2">"</span>无所指<span class="ff2">"</span>的<span class="_ _0"></span>引用,<span class="_ _5"></span>程序会进入</div><div class="t m0 x3 h6 y2e ff4 fs3 fc1 sc0 ls0 ws0">Generated by Foxit PDF Creator © Foxit Software</div><div class="t m0 x3 h6 y2f ff4 fs3 fc2 sc0 ls0 ws0">http://www.foxitsoftware.com For evaluation only.</div></div><div class="pi" data-data='{"ctm":[1.612252,0.000000,0.000000,1.612252,0.000000,0.000000]}'></div></div>
<div id="pf4" class="pf w0 h0" data-page-no="4"><div class="pc pc4 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/627d583e9b6e2b6d5523314e/bg4.jpg"><div class="t m0 x1 h2 y1 ff1 fs0 fc0 sc0 ls0 ws0">安徽高新嵌入式教育<span class="_ _0"></span>中心<span class="ff2"> <span class="_"> </span> <span class="_"> </span>sk<span class="_ _0"></span>yino1<span class="_"> </span><span class="ff1">整理</span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _1"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span><span class="ff1">希望能<span class="_ _0"></span>给你带来光明的前<span class="_ _0"></span>途<span class="ff2"> </span></span></span></div><div class="t m0 x2 h3 y2 ff2 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span>Qq:<span class="_ _0"></span>912886544 <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span>www<span class="_ _3"></span>.embedc<span class="_ _0"></span>n.co<span class="_ _0"></span>m </div><div class="t m0 x3 h3 y3 ff2 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x1 h3 y4 ff2 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x1 h2 y30 ff1 fs0 fc0 sc0 ls0 ws0">未知状态。<span class="ff2"> <span class="_"> </span> </span></div><div class="t m0 x5 h2 y55 ff1 fs0 fc0 sc0 ls0 ws0">(<span class="ff2">2</span>)<span class="_ _6"></span>不能返回函数内部<span class="_ _8"> </span><span class="ff2">ne<span class="_ _0"></span>w<span class="_"> </span><span class="ff1">分配的内存的引<span class="_ _0"></span>用。<span class="_ _5"></span>这条<span class="_ _0"></span>可以参照<span class="_ _8"> </span><span class="ff2">Eff<span class="_ _0"></span>ectiv<span class="_ _0"></span>e <span class="_ _4"></span>C++[1]<span class="ff1">的<span class="_ _8"> </span></span>Item<span class="_ _13"></span> </span></span></span></div><div class="t m0 x1 h2 y56 ff2 fs0 fc0 sc0 ls0 ws0">31<span class="ff1">。虽然不存在局部<span class="_ _0"></span>变量的被动销毁问<span class="_ _0"></span>题,可对于这<span class="_ _0"></span>种情况(返回函数内部<span class="_ _9"> </span><span class="ff2">n<span class="_ _0"></span>ew<span class="_ _16"> </span><span class="ff1">分配内存</span></span></span></div><div class="t m0 x1 h5 y57 ff1 fs0 fc0 sc0 ls0 ws0">的引用)<span class="_ _c"></span>,又面临其它尴尬局<span class="_ _0"></span>面。例如,被函数返回<span class="_ _0"></span>的引用只是作为一个临时变<span class="_ _0"></span>量出现,而</div><div class="t m0 x1 h2 y58 ff1 fs0 fc0 sc0 ls0 ws0">没有被赋予一个实际<span class="_ _0"></span>的变量,那么这个<span class="_ _0"></span>引用所指向的<span class="_ _0"></span>空间(由<span class="_ _9"> </span><span class="ff2">new<span class="_ _16"> </span></span>分配)就无法释放,造</div><div class="t m0 x1 h2 y7d ff1 fs0 fc0 sc0 ls0 ws0">成<span class="_ _8"> </span><span class="ff2">m<span class="_ _0"></span>emory leak<span class="ff1">。</span> </span></div><div class="t m0 x5 h2 y7e ff1 fs0 fc0 sc0 ls0 ws0">(<span class="ff2">3</span>)<span class="_ _c"></span>可以返回类成员<span class="_ _0"></span>的引用,<span class="_ _c"></span>但最好是<span class="_ _1"> </span><span class="ff2">co<span class="_ _0"></span>nst<span class="ff1">。<span class="_ _c"></span>这条原则可以参照<span class="_ _1"> </span><span class="ff2">Eff<span class="_ _0"></span>ective<span class="_ _0"></span> <span class="_ _4"></span>C++[1]<span class="ff1">的<span class="_ _8"> </span></span>Item<span class="_ _13"></span> </span></span></span></div><div class="t m0 x1 h2 y7f ff2 fs0 fc0 sc0 ls0 ws0">30<span class="ff1">。主要原因是当对象的属性是与某种业务规<span class="_ _0"></span>则(<span class="ff2">busin<span class="_ _13"></span>es<span class="_ _4"></span>s <span class="_"> </span>ru<span class="_ _0"></span>l<span class="_ _4"></span>e<span class="_ _0"></span><span class="ff1">)相关联的时候,其赋值常</span></span></span></div><div class="t m0 x1 h5 y80 ff1 fs0 fc0 sc0 ls0 ws0">常与某些其它属性或<span class="_ _0"></span>者对象的状态有关<span class="_ _0"></span>,因此有必要<span class="_ _0"></span>将赋值操作封装在一<span class="_ _0"></span>个业务规则当中。</div><div class="t m0 x1 h5 y81 ff1 fs0 fc0 sc0 ls0 ws0">如果其它对象可以获得该属<span class="_ _0"></span>性的非常量引用(或指<span class="_ _0"></span>针)<span class="_ _c"></span>,那么对该属性<span class="_ _0"></span>的单纯赋值就会破坏</div><div class="t m0 x1 h2 y82 ff1 fs0 fc0 sc0 ls0 ws0">业务规则的完整性。<span class="ff2"> </span></div><div class="t m0 x5 h2 y83 ff1 fs0 fc0 sc0 ls0 ws0">(<span class="ff2">4</span>)流操作符重载返<span class="_ _0"></span>回值申明为<span class="_ _0"></span><span class="ff2">“<span class="ff1">引用</span>”<span class="ff1">的作用:</span> </span></div><div class="t m0 x5 h2 y84 ff1 fs0 fc0 sc0 ls0 ws0">流操作符<span class="ff2"><<</span>和<span class="ff2">><span class="_ _0"></span>><span class="ff1">,这两个操作符<span class="_ _0"></span>常常希望被连续使<span class="_ _0"></span>用,例如:<span class="ff2">co<span class="_ _0"></span>ut <span class="_ _e"></span><< <span class="_ _2"> </span>"h<span class="_ _0"></span>ello" <span class="_ _17"></span><< <span class="_ _17"> </span>en<span class="_ _0"></span>dl;<span class="ff1"> </span></span></span></span></div><div class="t m0 x1 h5 y85 ff1 fs0 fc0 sc0 ls0 ws0">因此这两个操作符的<span class="_ _0"></span>返回值应该是一个<span class="_ _0"></span>仍然支持这两<span class="_ _0"></span>个操作符的流引用。<span class="_ _14"></span>可选<span class="_ _0"></span>的其它方案包</div><div class="t m0 x1 h5 y86 ff1 fs0 fc0 sc0 ls0 ws0">括:<span class="_ _5"></span>返回一个流对象和返回一个<span class="_ _0"></span>流对象指针。<span class="_ _5"></span>但是对<span class="_ _0"></span>于返回一个流对象,<span class="_ _5"></span>程序必须重<span class="_ _0"></span>新<span class="_ _5"></span>(拷</div><div class="t m0 x1 h2 y87 ff1 fs0 fc0 sc0 ls0 ws0">贝)构造一个新的流对<span class="_ _4"></span>象,也就是说,连续<span class="_ _4"></span>的两个<span class="ff2"><<<span class="_ _4"></span></span>操作符实际上是针对不<span class="_ _4"></span>同对象的!这</div><div class="t m0 x1 h2 y88 ff1 fs0 fc0 sc0 ls0 ws0">无法让人接受。对于返<span class="_ _4"></span>回一个流指针则不能<span class="_ _4"></span>连续使用<span class="ff2"><<<span class="_ _4"></span></span>操作符。因此,返回一个<span class="_ _4"></span>流对象引</div><div class="t m0 x1 h5 y89 ff1 fs0 fc0 sc0 ls0 ws0">用是惟一选择。<span class="_ _6"></span>这个唯一选择很关<span class="_ _0"></span>键,<span class="_ _6"></span>它说明了引用的重要性以<span class="_ _0"></span>及无可替代性,<span class="_ _6"></span>也许这就是</div><div class="t m0 x1 h2 y8a ff2 fs0 fc0 sc0 ls0 ws0">C++<span class="ff1">语言中引入引用<span class="_ _0"></span>这个概念的原因吧<span class="_ _0"></span>。<span class="_ _3"></span><span class="ff2"> <span class="_"> </span><span class="ff1">赋值操作符<span class="_ _0"></span><span class="ff2">=<span class="ff1">。<span class="_ _3"></span>这个操作符<span class="_ _0"></span>象流操作符一样<span class="_ _0"></span>,<span class="_ _13"></span>是可</span></span></span></span></span></div><div class="t m0 x1 h2 y8b ff1 fs0 fc0 sc0 ls0 ws0">以连续使用的,例如<span class="_ _0"></span>:<span class="ff2">x <span class="_ _4"></span>= <span class="_ _e"></span>j <span class="_ _4"></span>= <span class="_ _e"></span>10;</span>或者<span class="_ _0"></span><span class="ff2">(x=<span class="_ _4"></span>10<span class="_ _0"></span>)=100;<span class="ff1">赋值操作符的<span class="_ _0"></span>返回值必须是一个<span class="_ _0"></span>左值,以</span></span></div><div class="t m0 x1 h2 y8c ff1 fs0 fc0 sc0 ls0 ws0">便可以被继续赋值。<span class="_ _0"></span>因此引用成了这个<span class="_ _0"></span>操作符的惟一<span class="_ _0"></span>返回值选择。<span class="ff2"> </span></div><div class="t m0 x5 h2 y8d ff1 fs0 fc0 sc0 ls0 ws0">例<span class="_ _8"> </span><span class="ff2">3 </span></div><div class="t m0 x5 h2 y8e ff1 fs0 fc0 sc0 ls0 ws0">#<span class="ff2">i n<span class="_ _0"></span>clude <iostre<span class="_ _0"></span>a<span class="_ _4"></span>m.h<span class="_ _0"></span>> </span></div><div class="t m0 x1 h2 y8f ff2 fs0 fc0 sc0 ls0 ws0">in<span class="_ _0"></span>t &<span class="_ _4"></span>pu<span class="_ _0"></span>t(i<span class="_ _4"></span>n<span class="_ _0"></span>t n); </div><div class="t m0 x1 h2 y90 ff2 fs0 fc0 sc0 ls0 ws0">in<span class="_ _0"></span>t <span class="_ _4"></span>v<span class="_ _0"></span>als[10]<span class="_ _4"></span>; </div><div class="t m0 x1 h2 y91 ff2 fs0 fc0 sc0 ls0 ws0">in<span class="_ _0"></span>t <span class="_ _4"></span>erro<span class="_ _0"></span>r=<span class="_ _4"></span>-1; </div><div class="t m0 x1 h2 y92 ff2 fs0 fc0 sc0 ls0 ws0">void<span class="_ _0"></span> <span class="_ _4"></span>m<span class="_ _13"></span>ai<span class="_ _4"></span>n() </div><div class="t m0 x1 h2 y93 ff2 fs0 fc0 sc0 ls0 ws0">{ </div><div class="t m0 x1 h2 y94 ff2 fs0 fc0 sc0 ls0 ws0">put(0)=10; //<span class="_ _0"></span><span class="ff1">以<span class="_ _8"> </span><span class="ff2">pu<span class="_ _0"></span>t(0)<span class="_ _4"></span><span class="ff1">函数值作为左<span class="_ _0"></span>值,等价于<span class="_ _1"> </span><span class="ff2">vals[0]=10; <span class="_"> </span> </span></span></span></span></div><div class="t m0 x1 h2 y95 ff2 fs0 fc0 sc0 ls0 ws0">put(9)=20; //<span class="_ _0"></span><span class="ff1">以<span class="_ _8"> </span><span class="ff2">pu<span class="_ _0"></span>t(9)<span class="_ _4"></span><span class="ff1">函数值作为左<span class="_ _0"></span>值,等价于<span class="_ _1"> </span><span class="ff2">vals[9]=20; <span class="_"> </span> </span></span></span></span></div><div class="t m0 x1 h2 y96 ff2 fs0 fc0 sc0 ls0 ws0">cou<span class="_ _0"></span>t<<<span class="_ _4"></span>v<span class="_ _0"></span>als[0]<span class="_ _4"></span>; <span class="_"> </span> </div><div class="t m0 x1 h2 y97 ff2 fs0 fc0 sc0 ls0 ws0">cou<span class="_ _0"></span>t<<<span class="_ _4"></span>v<span class="_ _0"></span>als[9]<span class="_ _4"></span>; </div><div class="t m0 x1 h2 y98 ff2 fs0 fc0 sc0 ls0 ws0">} <span class="_"> </span> </div><div class="t m0 x1 h2 y99 ff2 fs0 fc0 sc0 ls0 ws0">in<span class="_ _0"></span>t &<span class="_ _4"></span>pu<span class="_ _0"></span>t(i<span class="_ _4"></span>n<span class="_ _0"></span>t n) </div><div class="t m0 x1 h2 y9a ff2 fs0 fc0 sc0 ls0 ws0">{ </div><div class="t m0 x1 h2 y9b ff2 fs0 fc0 sc0 ls0 ws0">if (n<span class="_ _0"></span>>=0 && n<=9 ) retu<span class="_ _0"></span>rn vals[n]; <span class="_"> </span> </div><div class="t m0 x1 h2 y9c ff2 fs0 fc0 sc0 ls0 ws0">else<span class="_ _0"></span> { cout<<"subscrip<span class="_ _0"></span>t <span class="_ _4"></span>e<span class="_ _0"></span>rr<span class="_ _4"></span>o<span class="_ _0"></span>r"; return e<span class="_ _0"></span>rr<span class="_ _4"></span>o<span class="_ _0"></span>r; } </div><div class="t m0 x1 h2 y9d ff2 fs0 fc0 sc0 ls0 ws0">} <span class="_"> </span> </div><div class="t m0 x5 h2 y9e ff1 fs0 fc0 sc0 ls0 ws0">(<span class="ff2">5</span>)在另<span class="_ _0"></span>外的一些操作符<span class="_ _0"></span>中,却<span class="_ _0"></span>千万不能返回引用<span class="_ _0"></span>:<span class="ff2">+-*<span class="_ _0"></span>/ <span class="_"> </span><span class="ff1">四则运算符。<span class="_ _13"></span>它们不能返回</span></span></div><div class="t m0 x1 h2 y9f ff1 fs0 fc0 sc0 ls0 ws0">引用,<span class="_ _7"></span><span class="ff2">Ef<span class="_ _0"></span>fec<span class="_ _0"></span>t<span class="_ _4"></span>ive<span class="_ _0"></span> C++[1]<span class="_ _4"></span><span class="ff1">的<span class="_ _1"> </span></span>Item<span class="_ _0"></span>23<span class="_"> </span><span class="ff1">详细的讨论了这个问<span class="_ _0"></span>题。<span class="_ _7"></span>主要原因是这四个<span class="_ _0"></span>操作符没有<span class="_ _1"> </span><span class="ff2">side </span></span></span></div><div class="t m0 x1 h2 ya0 ff2 fs0 fc0 sc0 ls0 ws0">ef<span class="_ _0"></span>fect<span class="ff1">,因此,它们必须构造一个对象作<span class="_ _4"></span>为返回值,可选的方案包括:返回一个对象、返回</span></div><div class="t m0 x1 h2 ya1 ff1 fs0 fc0 sc0 ls0 ws0">一个局部变量的引用<span class="_ _0"></span>,返回一个<span class="_ _9"> </span><span class="ff2">ne<span class="_ _0"></span>w<span class="_ _16"> </span><span class="ff1">分配的对象的引用、返回一个静态对象引用<span class="_ _0"></span>。根据前</span></span></div><div class="t m0 x1 h2 ya2 ff1 fs0 fc0 sc0 ls0 ws0">面提到的引用作为返<span class="_ _0"></span>回值的三个规则,<span class="_ _0"></span>第<span class="_ _8"> </span><span class="ff2">2</span>、<span class="ff2">3<span class="_ _10"> </span></span>两个方案都被否<span class="_ _0"></span>决了。静态对象的<span class="_ _0"></span>引用又因</div><div class="t m0 x1 h2 ya3 ff1 fs0 fc0 sc0 ls0 ws0">为<span class="ff2">((a+b) == (c+d<span class="_ _0"></span>))<span class="ff1">会永远为<span class="_ _8"> </span></span>tru<span class="_ _0"></span>e<span class="_"> </span><span class="ff1">而导致错误。所以可<span class="_ _0"></span>选的只剩下返回一个<span class="_ _0"></span>对象了。<span class="ff2"> </span></span></span></div><div class="t m0 x3 h6 y2e ff4 fs3 fc1 sc0 ls0 ws0">Generated by Foxit PDF Creator © Foxit Software</div><div class="t m0 x3 h6 y2f ff4 fs3 fc2 sc0 ls0 ws0">http://www.foxitsoftware.com For evaluation only.</div></div><div class="pi" data-data='{"ctm":[1.612252,0.000000,0.000000,1.612252,0.000000,0.000000]}'></div></div>
<div id="pf5" class="pf w0 h0" data-page-no="5"><div class="pc pc5 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/627d583e9b6e2b6d5523314e/bg5.jpg"><div class="t m0 x1 h2 y1 ff1 fs0 fc0 sc0 ls0 ws0">安徽高新嵌入式教育<span class="_ _0"></span>中心<span class="ff2"> <span class="_"> </span> <span class="_"> </span>sk<span class="_ _0"></span>yino1<span class="_"> </span><span class="ff1">整理</span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _1"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span><span class="ff1">希望能<span class="_ _0"></span>给你带来光明的前<span class="_ _0"></span>途<span class="ff2"> </span></span></span></div><div class="t m0 x2 h3 y2 ff2 fs1 fc0 sc0 ls0 ws0"> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span>Qq:<span class="_ _0"></span>912886544 <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_ _2"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span> <span class="_"> </span>www<span class="_ _3"></span>.embedc<span class="_ _0"></span>n.co<span class="_ _0"></span>m </div><div class="t m0 x3 h3 y3 ff2 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x1 h3 y4 ff2 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x1 h4 ya4 ff3 fs2 fc0 sc0 ls0 ws0">13.“<span class="ff1 sc1">引用<span class="_ _4"></span></span>”<span class="_ _0"></span><span class="ff1 sc1">与多态<span class="_ _4"></span>的关系?<span class="ff3 sc0"> </span></span></div><div class="t m0 x5 h5 ya5 ff1 fs0 fc0 sc0 ls0 ws0">引用是除指针外另一<span class="_ _0"></span>个可以产生多态效<span class="_ _0"></span>果的手段。<span class="_ _7"></span>这意味着,<span class="_ _7"></span>一个基类的引<span class="_ _0"></span>用可以指向</div><div class="t m0 x1 h2 ya6 ff1 fs0 fc0 sc0 ls0 ws0">它的派生类实例。例<span class="_ _1"> </span><span class="ff2">4 </span></div><div class="t m0 x5 h2 ya7 ff2 fs0 fc0 sc0 ls0 ws0">Class <span class="_ _13"></span>A; Class B :<span class="_ _0"></span> Class <span class="_ _0"></span>A{...}; <span class="_"> </span>B b;<span class="_ _0"></span> <span class="_ _0"></span>A& ref<span class="_ _0"></span> = b; </div><div class="t m0 x1 h4 ya8 ff3 fs2 fc0 sc0 ls0 ws0">14.“<span class="ff1 sc1">引用<span class="_ _4"></span></span>”<span class="_ _0"></span><span class="ff1 sc1">与指针<span class="_ _4"></span>的区别是什么?<span class="_ _4"></span><span class="ff3 sc0"> </span></span></div><div class="t m0 x5 h5 ya9 ff1 fs0 fc0 sc0 ls0 ws0">指针通过某个指针变<span class="_ _0"></span>量指向一个对象后,<span class="_ _c"></span>对它所指<span class="_ _0"></span>向的变量间接<span class="_ _0"></span>操作。<span class="_ _14"></span>程序<span class="_ _0"></span>中使用指针,</div><div class="t m0 x1 h5 yaa ff1 fs0 fc0 sc0 ls0 ws0">程序的可读性差;而<span class="_ _0"></span>引用本身就是目标<span class="_ _0"></span>变量的别名,<span class="_ _0"></span>对引用的操作就是对<span class="_ _0"></span>目标变量的操作。</div><div class="t m0 x1 h2 yab ff1 fs0 fc0 sc0 ls0 ws0">此外,就是上面提到<span class="_ _0"></span>的对函数传<span class="_ _1"> </span><span class="ff2">ref<span class="_"> </span></span>和<span class="_ _1"> </span><span class="ff2">po<span class="_ _0"></span>i<span class="_ _4"></span>n<span class="_ _0"></span>t<span class="_ _4"></span>e<span class="_ _0"></span>r<span class="_ _10"> </span><span class="ff1">的区别。</span> </span></div><div class="t m0 x1 h4 yac ff3 fs2 fc0 sc0 ls0 ws0">15.<span class="ff1 sc1">什么时候需<span class="_ _4"></span>要</span>“<span class="ff1 sc1">引用</span>”<span class="ff1 sc1">?</span> </div><div class="t m0 x5 h2 yad ff1 fs0 fc0 sc0 ls0 ws0">流操作符<span class="ff2"><<</span>和<span class="ff2">><span class="_ _0"></span>><span class="ff1">、<span class="_ _3"></span>赋值操作符<span class="ff2">=<span class="_ _0"></span><span class="ff1">的返回值、<span class="_ _5"></span>拷贝构造函数的参数、<span class="_ _5"></span>赋值操作<span class="_ _0"></span>符<span class="ff2">=</span>的参数、</span></span></span></span></div><div class="t m0 x1 h2 yae ff1 fs0 fc0 sc0 ls0 ws0">其它情况都推荐使用<span class="_ _0"></span>引用。以上<span class="ff2"> <span class="_"> </span>2-8<span class="_ _0"></span> <span class="_"> </span><span class="ff1">参考:</span>http<span class="_ _0"></span>://develop<span class="_ _0"></span>.csai.cn/c/NO0000021.h<span class="_ _0"></span>t<span class="_ _4"></span>m<span class="_ _13"></span> </span></div><div class="t m0 x1 h4 yaf ff3 fs2 fc0 sc0 ls0 ws0">16.<span class="ff1 sc1">结构与联合<span class="_ _4"></span>有和区别?</span> </div><div class="t m0 x1 h2 yb0 ff2 fs0 fc0 sc0 ls0 ws0"> </div><div class="t m0 x1 h2 yb1 ff2 fs0 fc0 sc0 ls0 ws0">(1). <span class="_"> </span><span class="ff1">结构和联合都是由多个不同的数<span class="_ _0"></span>据类型成员组成<span class="ff2">, <span class="_"> </span></span>但在任何同一时刻<span class="ff2">, <span class="_"> </span></span>联合中只存放<span class="_ _0"></span>了</span></div><div class="t m0 x1 h2 yb2 ff1 fs0 fc0 sc0 ls0 ws0">一个被选中的成员<span class="_ _3"></span>(所有成员共<span class="_ _0"></span>用一块地址空间)<span class="_ _3"></span><span class="ff2">, <span class="_ _1"> </span><span class="ff1">而结构的所有成员都<span class="_ _0"></span>存在<span class="_ _13"></span>(不同成员的</span></span></div><div class="t m0 x1 h2 yb3 ff1 fs0 fc0 sc0 ls0 ws0">存放地址不同)<span class="_ _c"></span>。<span class="ff2"> </span></div><div class="t m0 x1 h2 yb4 ff2 fs0 fc0 sc0 ls0 ws0"> (2). <span class="_"> </span><span class="ff1">对于联合的不同成员赋值</span>,<span class="_ _4"></span> <span class="_"> </span><span class="ff1">将会对其它成员重写</span>,<span class="_ _4"></span> <span class="ff1">原来成员的值就不存在了</span>,<span class="_ _4"></span> <span class="_"> </span><span class="ff1">而对于结</span></div><div class="t m0 x1 h2 yb5 ff1 fs0 fc0 sc0 ls0 ws0">构的不同成员赋值是<span class="_ _0"></span>互不影响的。<span class="ff2"> </span></div><div class="t m0 x1 h4 yb6 ff3 fs2 fc0 sc0 ls0 ws0">17.<span class="ff1 sc1">面关于<span class="_ _4"></span></span>“<span class="_ _0"></span><span class="ff1 sc1">联合<span class="_ _4"></span><span class="ff3 sc0">”</span>的题目的输出?<span class="_ _4"></span><span class="ff3 sc0"> </span></span></div><div class="t m0 x5 h2 yb7 ff2 fs0 fc0 sc0 ls0 ws0">a) </div><div class="t m0 x6 h2 yb8 ff1 fs0 fc0 sc0 ls0 ws0">#<span class="ff2">i n<span class="_ _0"></span>clude <stdio.h> </span></div><div class="t m0 x6 h2 yb9 ff2 fs0 fc0 sc0 ls0 ws0">union<span class="_ _0"></span> </div><div class="t m0 x6 h2 yba ff2 fs0 fc0 sc0 ls0 ws0">{ </div><div class="t m0 x6 h2 ybb ff2 fs0 fc0 sc0 ls0 ws0">in<span class="_ _0"></span>t i; </div><div class="t m0 x6 h2 ybc ff2 fs0 fc0 sc0 ls0 ws0">ch<span class="_ _0"></span>ar<span class="_ _4"></span> x[2]; </div><div class="t m0 x6 h2 ybd ff2 fs0 fc0 sc0 ls0 ws0">}a; </div><div class="t m0 x7 h2 ybe ff2 fs0 fc0 sc0 ls0 ws0"> </div><div class="t m0 x6 h2 ybf ff2 fs0 fc0 sc0 ls0 ws0">void<span class="_ _0"></span> <span class="_ _4"></span>m<span class="_ _13"></span>ai<span class="_ _4"></span>n() </div><div class="t m0 x6 h2 yc0 ff2 fs0 fc0 sc0 ls0 ws0">{ </div><div class="t m0 x6 h2 yc1 ff2 fs0 fc0 sc0 ls0 ws0">a.x[0] = 10; <span class="_"> </span> </div><div class="t m0 x6 h2 yc2 ff2 fs0 fc0 sc0 ls0 ws0">a.x[1] = 1; </div><div class="t m0 x6 h2 yc3 ff2 fs0 fc0 sc0 ls0 ws0">printf<span class="_ _0"></span>("%d",a.i); </div><div class="t m0 x6 h2 yc4 ff2 fs0 fc0 sc0 ls0 ws0">} </div><div class="t m0 x6 h2 yc5 ff1 fs0 fc0 sc0 ls0 ws0">答案:<span class="ff2">266 (</span>低位低<span class="_ _0"></span>地址,高位高地址<span class="_ _0"></span>,内存占用情况<span class="_ _0"></span>是<span class="_ _8"> </span><span class="ff2">Ox010A</span>)<span class="ff2"> </span></div><div class="t m0 x5 h2 yc6 ff2 fs0 fc0 sc0 ls0 ws0">b) </div><div class="t m0 x5 h2 yc7 ff2 fs0 fc0 sc0 ls0 ws0">m<span class="_ _13"></span>a<span class="_ _4"></span>in() <span class="_"> </span> </div><div class="t m0 x1 h2 yc8 ff2 fs0 fc0 sc0 ls0 ws0"> <span class="_"> </span>{ <span class="_"> </span> </div><div class="t m0 x1 h2 yc9 ff2 fs0 fc0 sc0 ls0 ws0"> <span class="_"> </span>un<span class="_ _0"></span>ion{ <span class="_"> </span>/*<span class="_ _0"></span><span class="ff1">定义一个联合<span class="ff2">*/ <span class="_"> </span> </span></span></div><div class="t m0 x1 h2 yca ff2 fs0 fc0 sc0 ls0 ws0"> <span class="_"> </span>in<span class="_ _0"></span>t i; <span class="_"> </span> </div><div class="t m0 x1 h2 ycb ff2 fs0 fc0 sc0 ls0 ws0"> <span class="_"> </span>struc<span class="_ _0"></span>t{ <span class="_"> </span>/*<span class="_ _0"></span><span class="ff1">在联合中定义一个结构<span class="ff2">*<span class="_ _0"></span>/ <span class="_"> </span> </span></span></div><div class="t m0 x3 h6 y2e ff4 fs3 fc1 sc0 ls0 ws0">Generated by Foxit PDF Creator © Foxit Software</div><div class="t m0 x3 h6 y2f ff4 fs3 fc2 sc0 ls0 ws0">http://www.foxitsoftware.com For evaluation only.</div></div><div class="pi" data-data='{"ctm":[1.612252,0.000000,0.000000,1.612252,0.000000,0.000000]}'></div></div>