青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Impossible is nothing  
  愛過知情重醉過知酒濃   花開花謝終是空   緣份不停留像春風來又走   女人如花花似夢
公告
日歷
<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011
統計
  • 隨筆 - 8
  • 文章 - 91
  • 評論 - 16
  • 引用 - 0

導航

常用鏈接

留言簿(4)

隨筆分類(4)

隨筆檔案(8)

文章分類(77)

文章檔案(91)

相冊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

 
  

一個函數在一個特定的域中被多次聲明時,編譯器解析第二個及后面函數依照下面步驟:

1.參數個數或類型不同,則認為是重載
 // 重載函數
 void print( const string & );
 void print( vector<int> & );
2.函數返回類型和參數表完全相同,則認為第二個函數是第一個函數的重復聲明
 參數表的比較過程與參數名無關
3.如果兩個函數的參數表相同但是返回類型不同則第一個聲明被視為第一個的錯
誤重復聲明會被標記為編譯錯誤,例如
 unsigned int max( int i1, int i2 );
 int max( int , int ); // 錯誤: 只有返回類型不同
函數的返回類型不足以區分兩個重載函數
4.如果在兩個函數的參數表中只有缺省實參不同則第二個聲明被視為第一個的重
復聲明例如
 // 聲明同一函數
 int max( int *ia, int sz );
 int max( int *, int = 10 );

 typedef 名為現有的數據類型提供了一個替換名它并沒有創建一個新類型因此如果
兩個函數參數表的區別只在于一個使用了typedef 而另一個使用了與typedef 相應的類型
則該參數表不被視為不同的下列calc()的兩個函數聲明被視為具有相同的參數表第二個
聲明導致編譯時刻錯誤因為雖然它聲明了相同的參數表但是它聲明了與第一個不同的返
回類型
// typedef 并不引入一個新類型
typedef double DOLLAR;
// 錯誤: 相同參數表不同返回類型
extern DOLLAR calc( DOLLAR );
extern int calc( double );

 當一個參數類型是const 或volatile 時在識別函數聲明是否相同時并不考慮const 和
volatile 修飾符例如下列兩個聲明聲明了同一個函數
// 聲明同一函數
void f( int );
void f( const int );
參數是const 這只跟函數的定義有關系它意味著函數體內的表達式不能改變參數的
值但是對于按值傳遞的參數這對函數的用戶是完全透明的用戶不會看到函數對按值
傳遞的實參的改變按值傳遞的實參以及參數的其他傳遞方式在7.3 節中討論當實參
被按值傳遞時將參數聲明為const 不會改變可以被傳遞給該函數的實參種類任何int 型的
實參都可以被用來調用函數f(const int) 因為兩個函數接受相同的實參集所以剛才給出的
兩個聲明并沒有聲明一個重載函數函數f()可以被定義為
void f( int i ) { }

void f( const int i ) { }
然而在同一個程序中同時提供這兩個定義將產生錯誤因為這些定義把一個函數定義
了兩次
但是如果把const 或volatile 應用在指針或引用參數指向的類型上則在判斷函數聲明

是否相同時就要考慮const 和volatile 修飾符
// 聲明了不同的函數
void f( int* );
void f( const int* );
// 也聲明了不同的函數
void f( int& );
void f( const


 有時候沒有必要重載可能也不需要不同的函數定義在某些情況下缺省實參可以
把多個函數聲明壓縮為一個函數中例如兩個光標函數
moveAbs(int,int);
moveAbs(int,int,char*);
可以通過第三個char*型參數的有無來區分如果這兩個函數的實現十分類似并且在向
函數傳遞參數時如果能夠找到一個char*型缺省實參可以表示實參不存在時的意義則這兩
個函數就可以被合并現在正好有個這樣的缺省實參--值為0 的指針
move( int, int, char* = 0 );
程序員最好抱這樣的觀點并不是每個語言特性都是你要攀登的下一座山峰使用語言
的特性應該遵從應用的邏輯而不是簡單地因為它的存在就必須要使用它程序員不應該勉
強使用重載函數只有在必要的地方使用它們才會讓人感覺自

using 聲明怎樣影響重載函數呢using 聲明為一個名字空間的成員在該聲明出現的域中
提供了一個別名下面程序中的using 聲明會怎么樣呢
namespace libs_R_us {
int max( int, int );
int max( double, double );
extern void print( int );
extern void print( double );
}
// using 聲明
using libs_R_us::max;
using libs_R_us::print( double ); // 錯誤
void func()
{
max( 87, 65 ); // 調用 libs_R_us::max( int, int )
max( 35.5, 76.6 ); // 調用 libs_R_us::max( double, double )
}
第一個using 聲明向全局域中引入了兩個libs_R_us::max()函數于是我們便可以在func()
中調用這兩個max()函數函數調用時的實參類型將決定哪個函數會被調用第二個using 聲
明是個錯誤用戶不能在using 聲明中為一個函數指定參數表對于libs_R_us::pring()惟一有
效的using 聲明是
using libs_R_us::print;


如果using 聲明向一個域中引入了一個函數而該域中已經存在一個同名的函數又會
怎樣呢記住using 聲明只是一個聲明由using 聲明引入的函數就好像在該聲明出現的地
方被聲明一樣因此由using 聲明引入的函數重載了在該聲明所出現的域中同名函數的其
他聲明例如
375 第九章 重載函數
#include <string>
namespace libs_R_us {
extern void print( int );
extern void print( double );
}
extern void print( const string & );
// libs_R_us::print( int ) 和 libs_R_us::print( double )
// 重載 print( const string & )
using libs_R_us::print;
void fooBar( int ival )
{
print( "Value: " ); // 調用全局 print( const string & )
print( ival ); // 調用 libs_R_us::print( int )
}
using 聲明向全局域中加入了兩個聲明一個是print(int) 一個是print(double) 這些聲
明為名字空間libs_R_us 中的函數提供了別名這些聲明被加入到print()的重載函數集合中
它已經包含了全局函數print(const string&) 當fooBar()調用函數時所有的print()函數都將
被考慮


如果using 聲明向一個域中引入了一個函數而該域中已經有同名函數且具有相同的參
數表則該using 聲明就是錯誤的如果在全局域中已經存在一個名為print(int)的函數則
using 聲明不能為名字空間libs_R_us 中的函數聲明別名print(int) 例如
namespace libs_R_us {
void print( int );
void print( double );
}
void print( int );
using libs_R_us::print; // 錯誤: print(int) 的重復聲明
void fooBar( int ival )
{
print( ival ); // 哪一個 print? ::print 還是 libs_R_us::print?
}


posted on 2006-02-22 22:47 笑笑生 閱讀(232) 評論(0)  編輯 收藏 引用 所屬分類: C++語言
 
Copyright © 笑笑生 Powered by: 博客園 模板提供:滬江博客
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲欧美激情一区二区| 亚洲国产精品悠悠久久琪琪| 午夜视频久久久久久| 日韩亚洲欧美精品| 一个色综合av| 午夜激情综合网| 欧美一区午夜视频在线观看| 欧美一区二区私人影院日本| 久久久久久久久久看片| 欧美激情视频免费观看| 欧美日韩美女一区二区| 国产午夜精品美女视频明星a级| 国产专区欧美精品| 亚洲久久一区二区| 欧美一级大片在线免费观看| 久久综合久久综合久久| 亚洲日本成人女熟在线观看| 亚洲精品中文字幕有码专区| 亚洲综合日本| 你懂的视频一区二区| 国产精品毛片a∨一区二区三区|国 | 欧美日韩精品三区| 国产精品一区二区你懂的| 国产一区二区电影在线观看 | 亚洲永久免费| 男人的天堂亚洲在线| 亚洲最黄网站| 玖玖玖国产精品| 老司机精品导航| 亚洲日本激情| 午夜亚洲福利| 亚洲精品日韩激情在线电影| 亚洲永久精品大片| 欧美精品少妇一区二区三区| 国产亚洲精品久久久| 中文一区字幕| 欧美福利一区二区| 欧美一级大片在线免费观看| 欧美日韩精品综合在线| 亚洲观看高清完整版在线观看| 亚洲欧美日韩一区二区在线 | 一区二区高清| 美女精品自拍一二三四| 国产一区二区三区黄视频| 亚洲午夜羞羞片| 亚洲国产一区二区三区高清| 久久久99久久精品女同性| 国产精品一区二区三区久久久| 一区二区三区四区五区精品视频| 欧美成人一二三| 久久久另类综合| 国产一区在线观看视频| 欧美中文字幕在线视频| 亚洲一区二区三区四区五区午夜| 欧美精品观看| 99精品视频一区| 亚洲福利专区| 欧美国产日韩免费| 9久re热视频在线精品| 亚洲福利在线观看| 欧美国产国产综合| 一本大道久久精品懂色aⅴ| 亚洲国产精品电影在线观看| 欧美+亚洲+精品+三区| 极品av少妇一区二区| 久久久综合免费视频| 久久精品国产99国产精品| 国产亚洲精品久久飘花| 久久久91精品国产一区二区精品| 亚洲欧美日韩综合一区| 国产欧美精品va在线观看| 久久精品72免费观看| 久久成人免费视频| 亚洲国产另类精品专区| 欧美成人首页| 欧美精品七区| 亚洲欧美乱综合| 欧美一区二区三区播放老司机| 狠狠色狠狠色综合日日小说| 久久久久久久综合| 免费国产一区二区| 一道本一区二区| 午夜视频在线观看一区二区| 激情久久久久| 亚洲精品久久久久久久久久久久| 亚洲国产毛片完整版| 国产精品国产三级国产aⅴ入口| 午夜精品999| 久久综合中文色婷婷| 日韩网站在线看片你懂的| 亚洲图片欧洲图片av| 精品成人在线| 亚洲伦理在线| 国产一区亚洲| 日韩一区二区免费看| 韩日在线一区| 在线一区二区三区四区五区| 激情久久一区| 宅男66日本亚洲欧美视频| 影音先锋久久资源网| 9l视频自拍蝌蚪9l视频成人| 国产字幕视频一区二区| 亚洲国产精品久久久久婷婷884| 国产精品久久久久久久浪潮网站| 美国三级日本三级久久99| 欧美午夜国产| 91久久精品一区二区别| 国产主播喷水一区二区| 在线一区二区三区四区五区| 亚洲国产精品一区二区第一页 | 在线精品视频一区二区| 日韩视频在线免费观看| 亚洲国产成人av| 香蕉久久夜色精品国产| aaa亚洲精品一二三区| 久久精品中文字幕免费mv| 亚洲一区二区免费| 欧美国产高潮xxxx1819| 久久躁狠狠躁夜夜爽| 国产精品日韩久久久久| 亚洲国产欧美一区二区三区同亚洲| 国产一区二区三区精品欧美日韩一区二区三区 | 另类天堂视频在线观看| 国产精品区二区三区日本| 亚洲精品日韩欧美| 亚洲日本理论电影| 免费成人av在线看| 久热re这里精品视频在线6| 国产欧美一区二区三区在线看蜜臀 | 亚洲缚视频在线观看| 欧美一区二区三区四区在线观看| 亚洲在线一区二区三区| 欧美午夜不卡视频| 99re6热只有精品免费观看| 夜夜嗨av一区二区三区中文字幕| 蜜桃av一区二区| 亚洲国产欧美一区二区三区丁香婷| 亚洲第一色在线| 欧美大片18| 亚洲精品一区二区三| 99精品久久久| 欧美午夜影院| 欧美一级专区| 国产欧美成人| 久久九九精品99国产精品| 免费久久99精品国产自在现线 | 亚洲一区二区精品在线| 欧美日韩亚洲高清| 亚洲免费影视第一页| 久久国产手机看片| 亚洲第一中文字幕| 欧美理论片在线观看| 99日韩精品| 欧美在线视频一区| 在线观看欧美精品| 欧美理论在线播放| 亚洲欧美日韩中文视频| 麻豆精品视频在线观看视频| 亚洲精品美女在线观看播放| 欧美视频二区| 欧美在线观看视频一区二区| 美乳少妇欧美精品| 一区二区免费在线观看| 国产精品日韩欧美一区二区三区| 欧美一级理论片| 亚洲成色www8888| 先锋影音久久| 极品日韩久久| 国产精品高潮呻吟久久av无限 | 亚洲精品一区二区三区av| 欧美一级片在线播放| 亚洲高清在线| 国产精品伦一区| 毛片精品免费在线观看| 中文国产成人精品久久一| 开心色5月久久精品| 亚洲午夜久久久久久久久电影网| 精品99一区二区三区| 欧美日韩免费观看一区| 久久精品日产第一区二区| 亚洲精品中文字幕在线| 久久久亚洲国产美女国产盗摄| av成人免费观看| 在线播放日韩专区| 国产精品视频福利| 欧美激情第五页| 久久久国际精品| 亚洲欧美成人一区二区在线电影| 亚洲国产91| 蜜桃av一区二区| 久久国产精品久久久久久电车 | 一区免费在线| 国产精品一区二区三区成人| 欧美精品麻豆| 老司机一区二区三区| 欧美主播一区二区三区美女 久久精品人 | 亚洲精品系列| 亚洲第一综合天堂另类专| 久久久天天操| 久久九九电影|