ï»?!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> C++中函数的用法ž®ç»“-‹¹Žå—软äšg开å?‹¹Žå—软äšg开发|å±×ƒ¸œè½¯äšg开å?‹¹Žå—èµ¢å¯d¿U‘技软äšg开发公å?/title> <meta name="keywords" content="C++中函数的用法ž®ç»“-‹¹Žå—软äšg开å?/> <meta name="description" content="函数在C++中的使用åQŒæ— é?¿Uåœ°æ–¹ï¼Œä¸€å¤„是函数的定义,一处是函数的调用。而函数的定义则非常简单,ç”׃¸‰ä¸ªéƒ¨åˆ†ç»„成:函数的返回类型、函数名和函数的形参表。当ç„Óž¼Œ˜q™é‡Œä¸åŒçš„函数定义可以还会稍有不同,比如¾cȝš„成员函数、内"/> <link href="/css/style.css" rel="stylesheet" type="text/css" /> <meta http-equiv="Cache-Control" content="no-transform" /> <meta http-equiv="Cache-Control" content="no-siteapp" /> </head> <body> <div style="position:fixed;left:-9000px;top:-9000px;"><dfn id="orz4q"><noscript id="orz4q"><xmp id="orz4q"><output id="orz4q"></output></xmp></noscript></dfn><strong id="orz4q"><dl id="orz4q"></dl></strong><ol id="orz4q"><p id="orz4q"><nav id="orz4q"><pre id="orz4q"></pre></nav></p></ol><dfn id="orz4q"></dfn><small id="orz4q"><optgroup id="orz4q"></optgroup></small><center id="orz4q"><small id="orz4q"><track id="orz4q"><rp id="orz4q"></rp></track></small></center><table id="orz4q"><ruby id="orz4q"><dl id="orz4q"><del id="orz4q"></del></dl></ruby></table><rt id="orz4q"></rt><output id="orz4q"></output><mark id="orz4q"></mark><dl id="orz4q"></dl><div id="orz4q"></div><optgroup id="orz4q"></optgroup><address id="orz4q"><progress id="orz4q"><noframes id="orz4q"><tr id="orz4q"></tr></noframes></progress></address><listing id="orz4q"><thead id="orz4q"><address id="orz4q"><wbr id="orz4q"></wbr></address></thead></listing><video id="orz4q"></video><object id="orz4q"><sup id="orz4q"></sup></object><em id="orz4q"></em><div id="orz4q"></div><progress id="orz4q"><listing id="orz4q"><th id="orz4q"><option id="orz4q"></option></th></listing></progress><meter id="orz4q"></meter><acronym id="orz4q"><rt id="orz4q"></rt></acronym><label id="orz4q"></label><track id="orz4q"></track><noscript id="orz4q"><div id="orz4q"><pre id="orz4q"><ol id="orz4q"></ol></pre></div></noscript><s id="orz4q"><kbd id="orz4q"></kbd></s><form id="orz4q"></form><var id="orz4q"></var><dl id="orz4q"><strike id="orz4q"></strike></dl><xmp id="orz4q"><strike id="orz4q"><small id="orz4q"><samp id="orz4q"></samp></small></strike></xmp><listing id="orz4q"><thead id="orz4q"><address id="orz4q"><progress id="orz4q"></progress></address></thead></listing><del id="orz4q"></del><object id="orz4q"><address id="orz4q"><samp id="orz4q"><rt id="orz4q"></rt></samp></address></object><ruby id="orz4q"></ruby><noframes id="orz4q"></noframes><code id="orz4q"></code><var id="orz4q"></var><nav id="orz4q"></nav><u id="orz4q"></u><span id="orz4q"></span><li id="orz4q"></li><tbody id="orz4q"><table id="orz4q"><span id="orz4q"><dl id="orz4q"></dl></span></table></tbody><optgroup id="orz4q"><xmp id="orz4q"><big id="orz4q"><em id="orz4q"></em></big></xmp></optgroup><var id="orz4q"></var><nav id="orz4q"></nav><rt id="orz4q"></rt><dfn id="orz4q"><font id="orz4q"><sub id="orz4q"><td id="orz4q"></td></sub></font></dfn><u id="orz4q"><s id="orz4q"></s></u><pre id="orz4q"><em id="orz4q"><p id="orz4q"><rp id="orz4q"></rp></p></em></pre><rt id="orz4q"><tr id="orz4q"></tr></rt> <pre id="orz4q"></pre><wbr id="orz4q"><rt id="orz4q"><tr id="orz4q"><output id="orz4q"></output></tr></rt></wbr><xmp id="orz4q"><pre id="orz4q"><em id="orz4q"><p id="orz4q"></p></em></pre></xmp><sub id="orz4q"></sub><p id="orz4q"></p><td id="orz4q"><tbody id="orz4q"></tbody></td><code id="orz4q"><video id="orz4q"><track id="orz4q"><tt id="orz4q"></tt></track></video></code><thead id="orz4q"></thead><source id="orz4q"><nobr id="orz4q"><cite id="orz4q"><td id="orz4q"></td></cite></nobr></source><del id="orz4q"></del><sub id="orz4q"></sub><code id="orz4q"></code><code id="orz4q"><menu id="orz4q"></menu></code><legend id="orz4q"><button id="orz4q"><source id="orz4q"><i id="orz4q"></i></source></button></legend><delect id="orz4q"></delect><ins id="orz4q"></ins><i id="orz4q"></i><pre id="orz4q"></pre><mark id="orz4q"></mark><b id="orz4q"><table id="orz4q"><strong id="orz4q"><noframes id="orz4q"></noframes></strong></table></b><source id="orz4q"></source><small id="orz4q"><optgroup id="orz4q"></optgroup></small><dl id="orz4q"></dl><center id="orz4q"><em id="orz4q"><track id="orz4q"><rp id="orz4q"></rp></track></em></center><address id="orz4q"></address><tt id="orz4q"><code id="orz4q"><nobr id="orz4q"><sub id="orz4q"></sub></nobr></code></tt><strong id="orz4q"></strong><delect id="orz4q"></delect><nobr id="orz4q"></nobr><strike id="orz4q"></strike><strong id="orz4q"></strong><optgroup id="orz4q"><xmp id="orz4q"><big id="orz4q"><em id="orz4q"></em></big></xmp></optgroup><menu id="orz4q"></menu><menu id="orz4q"></menu><small id="orz4q"><optgroup id="orz4q"></optgroup></small><input id="orz4q"><label id="orz4q"></label></input><big id="orz4q"><nobr id="orz4q"><track id="orz4q"><button id="orz4q"></button></track></nobr></big><sub id="orz4q"></sub><nav id="orz4q"><blockquote id="orz4q"></blockquote></nav><listing id="orz4q"><thead id="orz4q"><address id="orz4q"><wbr id="orz4q"></wbr></address></thead></listing><tbody id="orz4q"><table id="orz4q"></table></tbody><font id="orz4q"><mark id="orz4q"><meter id="orz4q"><tbody id="orz4q"></tbody></meter></mark></font><dl id="orz4q"><strike id="orz4q"><i id="orz4q"><samp id="orz4q"></samp></i></strike></dl><wbr id="orz4q"><noscript id="orz4q"></noscript></wbr><strong id="orz4q"><input id="orz4q"></input></strong><wbr id="orz4q"></wbr><legend id="orz4q"></legend><address id="orz4q"><progress id="orz4q"><noframes id="orz4q"><tr id="orz4q"></tr></noframes></progress></address><dfn id="orz4q"><font id="orz4q"><sub id="orz4q"><td id="orz4q"></td></sub></font></dfn><center id="orz4q"><ol id="orz4q"><noscript id="orz4q"><b id="orz4q"></b></noscript></ol></center> <u id="orz4q"><s id="orz4q"></s></u><u id="orz4q"><s id="orz4q"></s></u><output id="orz4q"></output><ruby id="orz4q"></ruby><wbr id="orz4q"></wbr><ins id="orz4q"></ins><s id="orz4q"><kbd id="orz4q"></kbd></s><b id="orz4q"></b><nobr id="orz4q"></nobr><strike id="orz4q"></strike><input id="orz4q"><label id="orz4q"></label></input><em id="orz4q"></em><form id="orz4q"></form><tbody id="orz4q"><table id="orz4q"><legend id="orz4q"><dl id="orz4q"></dl></legend></table></tbody><tr id="orz4q"></tr><dd id="orz4q"></dd><li id="orz4q"></li><code id="orz4q"></code><menu id="orz4q"><samp id="orz4q"></samp></menu><p id="orz4q"><rp id="orz4q"><u id="orz4q"><strong id="orz4q"></strong></u></rp></p><pre id="orz4q"><em id="orz4q"></em></pre><tbody id="orz4q"><table id="orz4q"></table></tbody><ol id="orz4q"><p id="orz4q"><label id="orz4q"><blockquote id="orz4q"></blockquote></label></p></ol><tr id="orz4q"><option id="orz4q"></option></tr><legend id="orz4q"></legend><p id="orz4q"><rp id="orz4q"><output id="orz4q"><strong id="orz4q"></strong></output></rp></p><menu id="orz4q"></menu><rt id="orz4q"></rt><rp id="orz4q"></rp><optgroup id="orz4q"></optgroup><del id="orz4q"></del><button id="orz4q"></button><rp id="orz4q"></rp><dfn id="orz4q"><font id="orz4q"><sub id="orz4q"><td id="orz4q"></td></sub></font></dfn><nav id="orz4q"><blockquote id="orz4q"></blockquote></nav><thead id="orz4q"><menuitem id="orz4q"><progress id="orz4q"><noscript id="orz4q"></noscript></progress></menuitem></thead><sup id="orz4q"><acronym id="orz4q"></acronym></sup><center id="orz4q"></center><font id="orz4q"></font><noscript id="orz4q"><div id="orz4q"></div></noscript><font id="orz4q"></font><wbr id="orz4q"><noscript id="orz4q"></noscript></wbr><meter id="orz4q"></meter><optgroup id="orz4q"><xmp id="orz4q"><big id="orz4q"><em id="orz4q"></em></big></xmp></optgroup><nav id="orz4q"></nav><input id="orz4q"><label id="orz4q"><menuitem id="orz4q"><progress id="orz4q"></progress></menuitem></label></input><address id="orz4q"></address><dl id="orz4q"></dl><progress id="orz4q"></progress><video id="orz4q"></video></div> <div class="head"> <div class="top"><span><a href="/html/sitemap.xml">XML</a> | <a href="/html/sitemap.html">HTML</a> | <a href="/sitemap.txt">TXT</a></span></div> <div class="bank"> <div class="logo"> <h1><strong><a href="http://www.themmauniversity.com" style="margin-right:10px">‹¹Žå—软äšg开å?/a></strong><strong><a href="http://www.themmauniversity.com">å±×ƒ¸œè½¯äšg开å?/a></strong></h1> </div> <div class="contact-top"></div> </div> <div class="menu"> <ul> <li><a href="/">é¦?#160;   ™å?/a></li> <li><a href="/About/">关于我们</a></li> <li><a href="/Advantage/">开发优åŠ?/a></li> <li><a href="/Products/">产品展示</a></li> <li><a href="/Cooperation/">合作企业</a></li> <li><a href="/News/">新闻动æ€?/a></li> <li><a href="/Contact/">联系我们</a></li> </ul> </div> <div class="banner"><img src="/images/banner.jpg" width="1000" height="341"/></div> </div> <div id="position"><div>您当前位¾|®ï¼š<a href="/">软äšg开å?/a> >> <a href="/News/">新闻动æ€?/a> >> <a href="/News/Industry/">软äšg开发行业资è®?/a> >> ‹¹è§ˆæ–‡ç« </div></div> <div class="youshi_f1" id="youshi_tdyx"> <div class="youshi01"> <h1 class="article_title">C++中函数的用法ž®ç»“-‹¹Žå—软äšg开å?/h1> <div class="article_author">æ·ÕdŠ æ—‰™—´åQ?016-11-8 15:03:29 文章作者:<a href="/">‹¹Žå—软äšg开å?/a> ‹¹è§ˆ‹Æ¡æ•°åQ?Script Language="Javascript" Src="/item/GetHits.asp?Action=Count&GetFlag=0&m=1&ID=2909"></Script></div> <div class="article_main"><div id="MyContent"><p><span style="font-size: 14px;">  函数在C++中的使用åQŒæ— é?¿Uåœ°æ–¹ï¼Œä¸€å¤„是函数的定义,一处是函数的调用。而函数的定义则非常简单,ç”׃¸‰ä¸ªéƒ¨åˆ†ç»„成:函数的返回类型、函数名和函数的形参表。当ç„Óž¼Œ˜q™é‡Œä¸åŒçš„函数定义可以还会稍有不同,比如¾cȝš„成员函数、内联函数等。这里我们主要讨论函数的调用旉™œ€è¦æ³¨æ„çš„一些问题ã€?/span></p><p><span style="font-size: 14px;">  一、参æ•îC¼ é€?/span></p><p><span style="font-size: 14px;">  我们ž®†å‡½æ•°å®šä¹‰æˆ–声明里的参数叫åŞ参,而在调用函数时传入的参数叫实参。那么根据åŞ参类型的不同åQŒæœ‰å‡ ä¸‹å½¢å¼çš„参æ•îC¼ é€’ã€?/span></p><p><span style="font-size: 14px;">  1åQŒéžå¼•ç”¨å½¢å‚</span></p><p><span style="font-size: 14px;">  1åQ‰æ™®é€šçš„内置¾cÕdž‹</span></p><p><span style="font-size: 14px;">  普通非引用¾cÕdž‹çš„参数通过复制对应的实参实现åŞ参的初始化。当用实参的副本初始化åŞ参时åQŒå‡½æ•°åƈ没有讉K—®è°ƒç”¨æ‰€ä¼ é€’的实参的本íw«ï¼Œå› æ­¤å‡½æ•°ä¸å¯èƒ½æ”¹å®žå‚的倹{€‚比如下面的交换两个数的½E‹åºåQ?/span></p><p><span style="font-size: 14px;">  void swap(int v1, int v2)</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  int temp = v1;</span></p><p><span style="font-size: 14px;">  v2 = v1;</span></p><p><span style="font-size: 14px;">  v1 = temp;</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  swap(a, b);// 调用swap</span></p><p><span style="font-size: 14px;">  上面½E‹åºä¸­ï¼Œå®žå‚为a与båQŒä½†æ˜¯åœ¨è°ƒç”¨æ—Óž¼Œv1与v2接受的是a与b的副本,所以实际上a与b的值没有变化ã€?/span></p><p><span style="font-size: 14px;">  2åQ‰æŒ‡é’ˆåŞå?/span></p><p><span style="font-size: 14px;">  函数的åŞ参可以是指针åQŒæ­¤æ—¶å°†å¤åˆ¶å®žå‚指针åQŒå…¶å®žè¿™¾c»è·Ÿ1åQ‰åŽŸç†ç±»ä¼û|¼Œå‡½æ•°å†…åƈ无法改变实参的指针倹{€‚只是函数可以通过复制到的地址改变实参指针所指向的倹{€?/span></p><p><span style="font-size: 14px;">  void swap(int* v1, int* v2)</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  int temp = *v2;</span></p><p><span style="font-size: 14px;">  *v2 = *v1;</span></p><p><span style="font-size: 14px;">  *v1 = temp;</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  int main()</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  int a = 10,b = 20;</span></p><p><span style="font-size: 14px;">  int *p1 = &a,*p2 = &b;</span></p><p><span style="font-size: 14px;">  swap(p1,p2);</span></p><p><span style="font-size: 14px;">  return 0;</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  上面½E‹åºä¸­å®šä¹‰çš„swap的åŞ参äؓ指针¾cÕdž‹åQŒmain中调用swapåQŒå®žé™…上swapòq¶ä¸èƒ½æ”¹å˜p1与p2的å€û|¼Œåªæ˜¯æ”¹å˜äº†å®ƒä»¬æ‰€æŒ‡å‘的倹{€?/span></p><p><span style="font-size: 14px;">  3åQ‰const 形参</span></p><p><span style="font-size: 14px;">  对于普通的非引用类型用const修饰实际上是没有意义的,因äؓ本来函数ž®×ƒ¸ä¼šæ”¹å˜å®žå‚的倹{€‚像下面的定义,实际中编译器会忽略const的定义,而将其视为int型ã€?/span></p><p><span style="font-size: 14px;">  void fcn(const int i);</span></p><p><span style="font-size: 14px;">  2åQŒå¼•ç”¨åŞå?/span></p><p><span style="font-size: 14px;">  1åQ‰åœ¨ä¸Šé¢çš„程序中我们看到åQŒå¦‚果想交换两个变量的å€û|¼Œé€šè¿‡è°ƒç”¨æ™®é€šçš„非引用类型åŞ参的函数åQŒåƈ不能实现。用它们的指针可以,同时我们也可以用引用ã€?/span></p><p><span style="font-size: 14px;">  void swap(int& v1, int& v2)</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  int temp = v2;</span></p><p><span style="font-size: 14px;">  v2 = v1;</span></p><p><span style="font-size: 14px;">  v1 = temp;</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  int main()</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  int a = 10,b = 20;</span></p><p><span style="font-size: 14px;">  swap(a,b);</span></p><p><span style="font-size: 14px;">  return 0;</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  在实际调用swapæ—Óž¼Œv1与v2实际相当于a与b的另一个名字ã€?/span></p><p><span style="font-size: 14px;">  2åQ‰åœ¨æœ‰çš„时候我们需要向函数传递大型对象,需要ä‹É用引用åŞ参,如果直接使用复制实参的åŞ式可以,但是它的效率太低了,甚至有些对象是无法复制的。但是ä‹É用引用åŞ参时åQŒæˆ‘们不希望函数改变了实参传入的å€û|¼Œæˆ‘们ž®±å¯ä»¥ä‹É用const来限定åŞ参。下面程序用来判断哪个字½W¦ä¸²æ›´é•¿åQŒæ˜Žæ˜¾æˆ‘们不希望函数会改变字½W¦ä¸²çš„内容,我们ž®±å¯ä»¥ç”¨const引用型的形参ã€?/span></p><p><span style="font-size: 14px;">  bool isLonger(const string &s1, const string &s2)</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  return s1.size() > s2.size();</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  所以,如果使用引用形参的惟一的目的是避免复制实参æ—Óž¼Œåˆ™åº”ž®†åŞ参定义äؓconst引用ã€?/span></p><p><span style="font-size: 14px;">  3åQ‰åœ¨ä½¿ç”¨å¼•ç”¨å½¢å‚函数æ—Óž¼Œæœ‰ä¸¤ç‚¹å€¼å¾—注意åQ?/span></p><p><span style="font-size: 14px;">  不要用const限定的实参或字面值来调用非const引用形参函数。因ä¸ø™¿™æ ·å‡½æ•°å†…åQŒå¯ä»¥æ”¹å˜å®žå‚çš„å€û|¼Œ˜q™ä¸åˆæ³•ã€?/span></p><p><span style="font-size: 14px;">  非const引用形参只能与完全同¾cÕdž‹çš„非const对象兌™”ã€?/span></p><p><span style="font-size: 14px;">  4åQ‰ä¼ é€’指向指针的引用</span></p><p><span style="font-size: 14px;">  如下有下面的½E‹åºåQ?/span></p><p><span style="font-size: 14px;">  void swap(int* &v1, int* &v2)</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  int* temp = v2;</span></p><p><span style="font-size: 14px;">  v2 = v1;</span></p><p><span style="font-size: 14px;">  v1 = temp;</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  int main()</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  int a = 10,b = 20;</span></p><p><span style="font-size: 14px;">  int* p1 = &a, *p2 = &b;</span></p><p><span style="font-size: 14px;">  swap(p1,p2);</span></p><p><span style="font-size: 14px;">  return 0;</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  上面的程序依然不能改变a与b的å€û|¼Œä½†æ˜¯å®ƒæ”¹å˜äº†p1与p2的å€û|¼ŒçŽ°åœ¨p1指向了båQŒè€Œp2指向了aã€?/span></p><p><span style="font-size: 14px;">  3åQŒå…¶ä»–类型的形参</span></p><p><span style="font-size: 14px;">  1åQ‰vector和其他类型的形参åQšä¸€èˆ¬åœ¨˜q™ç§¾cÕdž‹ä½œäؓ形参æ—Óž¼Œä¸ÞZº†é¿å…å¤åˆ¶åº”该考虑形参声明为引用类型。C++½E‹åºå‘˜å€‘֐‘于传递容器中需要处理的元素的è„P代器来传递容器ã€?/span></p><p><span style="font-size: 14px;">  2åQ‰æ•°¾l„åŞ参:ç”׃ºŽæ•°ç»„不能复制åQŒæ‰€ä»¥ä¸èƒ½ç›´æŽ¥ç¼–写数¾l„类型的形参函数åQŒä¸€èˆ¬é€šè¿‡ä¼ é€’指向数¾l„的元素的指针来处理数组。值得注意的是在通过引用传递数¾l„æ—¶åQŒåœ¨è°ƒç”¨å‡½æ•°æ—¶åŞ参与实参的类型要匚w…ã€?/span></p><p><span style="font-size: 14px;">  void printValues(int (&ar)[10]);</span></p><p><span style="font-size: 14px;">  int main()</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  int i = 0, j[2] = { 0, 1 };</span></p><p><span style="font-size: 14px;">  int k[10] = {0,1,2,3,4,5,6,7,8,9};</span></p><p><span style="font-size: 14px;">  printValues(i);  //error int不能初始åŒ?int(&)[10]</span></p><p><span style="font-size: 14px;">  printValues(j);  //error int[2] 不能初始åŒ?int(&)[10]</span></p><p><span style="font-size: 14px;">  printValues(k);   // ok</span></p><p><span style="font-size: 14px;">  return 0;</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  二、函数的˜q”回å€?/span></p><p><span style="font-size: 14px;">  1åQ‰æ²¡æœ‰è¿”回å€?/span></p><p><span style="font-size: 14px;">  很多函数òq¶æ²¡æœ‰è¿”回å€û|¼Œž®¤å…¶æ˜¯çŽ°åœ¨C++风格åQŒä¹ æƒ¯äºŽæŠŠéœ€è¦çš„¾l“果作äؓ引用形参。这¾cÕdž‹å‡½æ•°ä¸€èˆ¬æ²¡æœ‰return语句åQŒæœ‰æ—¶å€™æœ‰return是ä‹É函数中途中断执行ã€?/span></p><p><span style="font-size: 14px;">  2åQ‰è¿”回非引用¾cÕdž‹</span></p><p><span style="font-size: 14px;">  ˜q™ç§æƒ…况在函数调用处åQŒç¨‹åºä¼šç”¨ä¸€ä¸ªäÍ时变量复制函数的˜q”回倹{€?/span></p><p><span style="font-size: 14px;">  3åQ‰è¿”回引ç”?/span></p><p><span style="font-size: 14px;">  当函数返回引用类型时åQŒåƈ没有复制˜q”回倹{€‚相反,˜q”回的是对象本èínã€?/span></p><p><span style="font-size: 14px;">  在返回引用这¿Uæƒ…况下åQŒæ³¨æ„ä¸è¦è¿”回局部变量的引用åQŒå› ä¸ºå±€éƒ¨å˜é‡åœ¨å‡½æ•°ä½“内定义åQŒå½“函数执行完后ž®±é”€æ¯äº†åQŒæ‰€è°“的引用也就没有意义了。同理,不要˜q”回指向局部变量的指针ã€?/span></p><p><span style="font-size: 14px;">  三、重载函æ•?/span></p><p><span style="font-size: 14px;">  出现在相同作用域中的两个函数åQŒå¦‚果具有相同的名字而åŞ参不同,则称为重载函数ã€?/span></p><p><span style="font-size: 14px;">  1åQ‰æ³¨æ„åŒºåˆ†å‡½æ•°é‡è½½ä¸Žé‡å¤å£°æ˜Ž</span></p><p><span style="font-size: 14px;">  有些看è“v来不同的形参åQŒæœ¬è´¨æ˜¯ç›¸åŒçš„。下面代码中的都是重复声明的例子</span></p><p><span style="font-size: 14px;">  typedef double newDouble;</span></p><p><span style="font-size: 14px;">  int func(double i);</span></p><p><span style="font-size: 14px;">  int func(newDouble i);  // 没有新类åž?/span></p><p><span style="font-size: 14px;">  int func1(int, int = 1); //只是提供默认参数</span></p><p><span style="font-size: 14px;">  int func1(int ,int);</span></p><p><span style="font-size: 14px;">  int func2(int);</span></p><p><span style="font-size: 14px;">  int func2(const int);  //对于普通非引用形参用cosnt修饰是没有意义的</span></p><p><span style="font-size: 14px;">  2åQ‰é‡è½½ä¸Žä½œç”¨åŸ?/span></p><p><span style="font-size: 14px;">  局部声明的函数åQŒå°†å±è”½æ‰€æœ‰å…¨å±€ä½œç”¨çš„同名函数。下面例子显½Cºï¼Œå³ä‹É全局作用的函数更加匹配调用的实参¾cÕdž‹åQŒä½†æ˜¯ä»ç„¶è°ƒç”¨çš„是局部的函数ã€?/span></p><p><span style="font-size: 14px;">  void print(int);</span></p><p><span style="font-size: 14px;">  int main()</span></p><p><span style="font-size: 14px;">  {</span></p><p><span style="font-size: 14px;">  void print(double);</span></p><p><span style="font-size: 14px;">  print(42);</span></p><p><span style="font-size: 14px;">  return 0;</span></p><p><span style="font-size: 14px;">  }</span></p><p><span style="font-size: 14px;">  上面½E‹åºä¸­ï¼Œž®†è°ƒç”¨void print(double)函数åQŒè™½ç„?2是int型ã€?/span></p><p><span style="font-size: 14px;">  3åQ‰é‡è½½ç¡®å®šçš„三个步骤</span></p><p><span style="font-size: 14px;">  如果定义了众多的函数重蝲åQŒå°†å­˜åœ¨å‡½æ•°è°ƒç”¨åˆ°åº•ä¸Žå“ªä¸ªé‡è½½å‡½æ•°ç›¸åŒšw…çš„问题。我们通过下面的示例代码来说明问题åQ?/span></p><p><span style="font-size: 14px;">  void f();  // 1</span></p><p><span style="font-size: 14px;">  void f(int);// 2</span></p><p><span style="font-size: 14px;">  void f(double);// 3</span></p><p><span style="font-size: 14px;">  void f(int, int);// 4</span></p><p><span style="font-size: 14px;">  void f(double, double);// 5</span></p><p><span style="font-size: 14px;">  ½W¬ä¸€æ­¥ï¼š¼‹®å®šå€™é€‰å‡½æ•?/span></p><p><span style="font-size: 14px;">  假如我们调用f(4.2)åQŒé‚£ä¹ˆå…ˆæ‰‘Öˆ°åŒåå‡½æ•°åQŒåƈ且在作用域内可见åQŒä¸Šé¢ä¾‹å­ä¸­5个函数都满èƒöã€?/span></p><p><span style="font-size: 14px;">  ½W¬äºŒæ­¥ï¼šé€‰æ‹©å¯è¡Œçš„函æ•?/span></p><p><span style="font-size: 14px;">  必须满èƒö2个条ä»Óž¼šä¸€æ˜¯å‡½æ•°åŞ参与该调用实参个数相同;½W¬äºŒåQŒæ¯ä¸ªå®žå‚çš„¾cÕdž‹å¿…须与对应的¾cÕdž‹åŒšw…åQŒæˆ–者可以被隐式转换为对应的形参¾cÕdž‹ã€‚这里我们再调用f(4.2)æ—Óž¼ŒæŽ’除äº?ã€?ã€?号函敎ͼŒåªå‰©ä¸?ä¸?。其ä¸?号函数可以通过¾cÕdž‹è½¬æ¢æ¥æ»¡­‘Ÿë€?/span></p><p><span style="font-size: 14px;">  ½W¬ä¸‰æ­¥ï¼šå¯ÀL‰¾æœ€ä½›_Œ¹é…?/span></p><p><span style="font-size: 14px;">  在经˜q‡ç¬¬äºŒæ­¥¼‹®å®šåŽï¼Œå‰©ä¸‹2ä¸?函数åQŒé‚£ä¹?需要进行类型è{换,昄¡„¶3是最佛_Œ¹é…äº†ã€?/span></p><p><span style="font-size: 14px;">  但是如果˜q™æ ·è°ƒç”¨f(42,4.2)。这时候就会出çŽîCºŒä¹‰æ€§ï¼Œ¾~–译器将提示ã€?/span></p><p><span style="font-size: 14px;">  ˜q˜æœ‰ä¸€¿Uè¦æ³¨æ„çš„就是有默认参数的函敎ͼŒæ¯”如我们定义6号函æ•îCؓvoid f(double,int =1);那么在调用f(4.2)时就会有二义性ã€?/span></p><p><span style="font-size: 14px;">  可基于函数的引用形参是指向const对象˜q˜æ˜¯æŒ‡å‘非const对象实现函数重蝲ã€?/span></p><p><br/></p></div> </div> </div> </div> <div class="clear"></div> <div class="foot"> <div class="foot_menu"> <ul> <li><a href="/About/">关于我们</a></li> <li><a href="/Advantage/">开发优åŠ?/a></li> <li><a href="/Statement/">法律声明</a></li> <li><a href="/Remittance/">汇款方式</a></li> <li><a href="/Contact/">联系我们</a></li> </ul> </div> <div class="banquan"> 手机åQ?8678812288 EåQMail:1069706080@qq.com<br /> 地址åQšå±±ä¸œçœ‹¹Žå—市舜耕èµ\泉城公园东门园内向北50¾c? 鲁ICPå¤?7011972å? 版权所æœ?008åQ?013 å±×ƒ¸œèµ¢å¯d信息¿U‘技有限公司<script type="text/javascript"> var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://"); document.write(unescape("%3Cscript src='" + _bdhmProtocol + "#/h.js%3F5fbc066dba9928a1e914c338c6945c98' type='text/javascript'%3E%3C/script%3E")); </script> </div> </div> <div style="position:fixed;left:-9000px;top:-9000px;"><dfn id="orz4q"><noscript id="orz4q"><xmp id="orz4q"><output id="orz4q"></output></xmp></noscript></dfn><strong id="orz4q"><dl id="orz4q"></dl></strong><ol id="orz4q"><p id="orz4q"><nav id="orz4q"><pre id="orz4q"></pre></nav></p></ol><dfn id="orz4q"></dfn><small id="orz4q"><optgroup id="orz4q"></optgroup></small><center id="orz4q"><small id="orz4q"><track id="orz4q"><rp id="orz4q"></rp></track></small></center><table id="orz4q"><ruby id="orz4q"><dl id="orz4q"><del id="orz4q"></del></dl></ruby></table><rt id="orz4q"></rt><output id="orz4q"></output><mark id="orz4q"></mark><dl id="orz4q"></dl><div id="orz4q"></div><optgroup id="orz4q"></optgroup><address id="orz4q"><progress id="orz4q"><noframes id="orz4q"><tr id="orz4q"></tr></noframes></progress></address><listing id="orz4q"><thead id="orz4q"><address id="orz4q"><wbr id="orz4q"></wbr></address></thead></listing><video id="orz4q"></video><object id="orz4q"><sup id="orz4q"></sup></object><em id="orz4q"></em><div id="orz4q"></div><progress id="orz4q"><listing id="orz4q"><th id="orz4q"><option id="orz4q"></option></th></listing></progress><meter id="orz4q"></meter><acronym id="orz4q"><rt id="orz4q"></rt></acronym><label id="orz4q"></label><track id="orz4q"></track><noscript id="orz4q"><div id="orz4q"><pre id="orz4q"><ol id="orz4q"></ol></pre></div></noscript><s id="orz4q"><kbd id="orz4q"></kbd></s><form id="orz4q"></form><var id="orz4q"></var><dl id="orz4q"><strike id="orz4q"></strike></dl><xmp id="orz4q"><strike id="orz4q"><small id="orz4q"><samp id="orz4q"></samp></small></strike></xmp><listing id="orz4q"><thead id="orz4q"><address id="orz4q"><progress id="orz4q"></progress></address></thead></listing><del id="orz4q"></del><object id="orz4q"><address id="orz4q"><samp id="orz4q"><rt id="orz4q"></rt></samp></address></object><ruby id="orz4q"></ruby><noframes id="orz4q"></noframes><code id="orz4q"></code><var id="orz4q"></var><nav id="orz4q"></nav><u id="orz4q"></u><span id="orz4q"></span><li id="orz4q"></li><tbody id="orz4q"><table id="orz4q"><span id="orz4q"><dl id="orz4q"></dl></span></table></tbody><optgroup id="orz4q"><xmp id="orz4q"><big id="orz4q"><em id="orz4q"></em></big></xmp></optgroup><var id="orz4q"></var><nav id="orz4q"></nav><rt id="orz4q"></rt><dfn id="orz4q"><font id="orz4q"><sub id="orz4q"><td id="orz4q"></td></sub></font></dfn><u id="orz4q"><s id="orz4q"></s></u><pre id="orz4q"><em id="orz4q"><p id="orz4q"><rp id="orz4q"></rp></p></em></pre><rt id="orz4q"><tr id="orz4q"></tr></rt> <pre id="orz4q"></pre><wbr id="orz4q"><rt id="orz4q"><tr id="orz4q"><output id="orz4q"></output></tr></rt></wbr><xmp id="orz4q"><pre id="orz4q"><em id="orz4q"><p id="orz4q"></p></em></pre></xmp><sub id="orz4q"></sub><p id="orz4q"></p><td id="orz4q"><tbody id="orz4q"></tbody></td><code id="orz4q"><video id="orz4q"><track id="orz4q"><tt id="orz4q"></tt></track></video></code><thead id="orz4q"></thead><source id="orz4q"><nobr id="orz4q"><cite id="orz4q"><td id="orz4q"></td></cite></nobr></source><del id="orz4q"></del><sub id="orz4q"></sub><code id="orz4q"></code><code id="orz4q"><menu id="orz4q"></menu></code><legend id="orz4q"><button id="orz4q"><source id="orz4q"><i id="orz4q"></i></source></button></legend><delect id="orz4q"></delect><ins id="orz4q"></ins><i id="orz4q"></i><pre id="orz4q"></pre><mark id="orz4q"></mark><b id="orz4q"><table id="orz4q"><strong id="orz4q"><noframes id="orz4q"></noframes></strong></table></b><source id="orz4q"></source><small id="orz4q"><optgroup id="orz4q"></optgroup></small><dl id="orz4q"></dl><center id="orz4q"><em id="orz4q"><track id="orz4q"><rp id="orz4q"></rp></track></em></center><address id="orz4q"></address><tt id="orz4q"><code id="orz4q"><nobr id="orz4q"><sub id="orz4q"></sub></nobr></code></tt><strong id="orz4q"></strong><delect id="orz4q"></delect><nobr id="orz4q"></nobr><strike id="orz4q"></strike><strong id="orz4q"></strong><optgroup id="orz4q"><xmp id="orz4q"><big id="orz4q"><em id="orz4q"></em></big></xmp></optgroup><menu id="orz4q"></menu><menu id="orz4q"></menu><small id="orz4q"><optgroup id="orz4q"></optgroup></small><input id="orz4q"><label id="orz4q"></label></input><big id="orz4q"><nobr id="orz4q"><track id="orz4q"><button id="orz4q"></button></track></nobr></big><sub id="orz4q"></sub><nav id="orz4q"><blockquote id="orz4q"></blockquote></nav><listing id="orz4q"><thead id="orz4q"><address id="orz4q"><wbr id="orz4q"></wbr></address></thead></listing><tbody id="orz4q"><table id="orz4q"></table></tbody><font id="orz4q"><mark id="orz4q"><meter id="orz4q"><tbody id="orz4q"></tbody></meter></mark></font><dl id="orz4q"><strike id="orz4q"><i id="orz4q"><samp id="orz4q"></samp></i></strike></dl><wbr id="orz4q"><noscript id="orz4q"></noscript></wbr><strong id="orz4q"><input id="orz4q"></input></strong><wbr id="orz4q"></wbr><legend id="orz4q"></legend><address id="orz4q"><progress id="orz4q"><noframes id="orz4q"><tr id="orz4q"></tr></noframes></progress></address><dfn id="orz4q"><font id="orz4q"><sub id="orz4q"><td id="orz4q"></td></sub></font></dfn><center id="orz4q"><ol id="orz4q"><noscript id="orz4q"><b id="orz4q"></b></noscript></ol></center> <u id="orz4q"><s id="orz4q"></s></u><u id="orz4q"><s id="orz4q"></s></u><output id="orz4q"></output><ruby id="orz4q"></ruby><wbr id="orz4q"></wbr><ins id="orz4q"></ins><s id="orz4q"><kbd id="orz4q"></kbd></s><b id="orz4q"></b><nobr id="orz4q"></nobr><strike id="orz4q"></strike><input id="orz4q"><label id="orz4q"></label></input><em id="orz4q"></em><form id="orz4q"></form><tbody id="orz4q"><table id="orz4q"><legend id="orz4q"><dl id="orz4q"></dl></legend></table></tbody><tr id="orz4q"></tr><dd id="orz4q"></dd><li id="orz4q"></li><code id="orz4q"></code><menu id="orz4q"><samp id="orz4q"></samp></menu><p id="orz4q"><rp id="orz4q"><u id="orz4q"><strong id="orz4q"></strong></u></rp></p><pre id="orz4q"><em id="orz4q"></em></pre><tbody id="orz4q"><table id="orz4q"></table></tbody><ol id="orz4q"><p id="orz4q"><label id="orz4q"><blockquote id="orz4q"></blockquote></label></p></ol><tr id="orz4q"><option id="orz4q"></option></tr><legend id="orz4q"></legend><p id="orz4q"><rp id="orz4q"><output id="orz4q"><strong id="orz4q"></strong></output></rp></p><menu id="orz4q"></menu><rt id="orz4q"></rt><rp id="orz4q"></rp><optgroup id="orz4q"></optgroup><del id="orz4q"></del><button id="orz4q"></button><rp id="orz4q"></rp><dfn id="orz4q"><font id="orz4q"><sub id="orz4q"><td id="orz4q"></td></sub></font></dfn><nav id="orz4q"><blockquote id="orz4q"></blockquote></nav><thead id="orz4q"><menuitem id="orz4q"><progress id="orz4q"><noscript id="orz4q"></noscript></progress></menuitem></thead><sup id="orz4q"><acronym id="orz4q"></acronym></sup><center id="orz4q"></center><font id="orz4q"></font><noscript id="orz4q"><div id="orz4q"></div></noscript><font id="orz4q"></font><wbr id="orz4q"><noscript id="orz4q"></noscript></wbr><meter id="orz4q"></meter><optgroup id="orz4q"><xmp id="orz4q"><big id="orz4q"><em id="orz4q"></em></big></xmp></optgroup><nav id="orz4q"></nav><input id="orz4q"><label id="orz4q"><menuitem id="orz4q"><progress id="orz4q"></progress></menuitem></label></input><address id="orz4q"></address><dl id="orz4q"></dl><progress id="orz4q"></progress><video id="orz4q"></video></div> <a href="http://www.themmauniversity.com/">ÈÕº«¾«Æ·ÎÞÂëÒ»Çø¶þÇøÑÇÖÞAV_ÃÛÔÂa¢¥Å·ÃÀÈÕº«¹ú²ú¾«Æ·_±©²ÙÃÀÅ®Òõ²¿¸ß³±ÌìÁËÕÚµ²Ãâ·Ñ¿´_Å·¾«²úÆ·Ò»ÇøÒ»ÇøÈýÇø</a> <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body> </html>