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

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

導(dǎo)航

常用鏈接

留言簿(4)

隨筆分類(4)

隨筆檔案(8)

文章分類(77)

文章檔案(91)

相冊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

 
  

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

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

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

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

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

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


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

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


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


如果using 聲明向一個域中引入了一個函數(shù)而該域中已經(jīng)有同名函數(shù)且具有相同的參
數(shù)表則該using 聲明就是錯誤的如果在全局域中已經(jīng)存在一個名為print(int)的函數(shù)則
using 聲明不能為名字空間libs_R_us 中的函數(shù)聲明別名print(int) 例如
namespace libs_R_us {
void print( int );
void print( double );
}
void print( int );
using libs_R_us::print; // 錯誤: print(int) 的重復(fù)聲明
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>
            久久成年人视频| 9国产精品视频| 亚洲视频一区| 亚洲成色最大综合在线| 亚洲精品久久久久久久久久久久久 | 欧美电影美腿模特1979在线看| 亚洲精品在线三区| 亚洲电影免费观看高清| 亚洲成色最大综合在线| 激情伊人五月天久久综合| 国产欧美日韩综合精品二区| 久久蜜臀精品av| 欧美日韩在线播放| 麻豆成人91精品二区三区| 久久网站免费| 欧美日韩精品一区二区| 久久er99精品| 欧美黄色一区二区| 久久国产精品久久国产精品| 久久久亚洲国产天美传媒修理工| 99精品国产热久久91蜜凸| 亚洲性图久久| 亚洲美女免费视频| 亚洲曰本av电影| 免费欧美在线| 亚洲综合色噜噜狠狠| 国产精品久久久久久超碰| 亚洲一区二区精品在线| 亚洲国产成人午夜在线一区| 国产亚洲一区精品| 欧美日韩精品欧美日韩精品一| 另类图片国产| 国内伊人久久久久久网站视频| 久久青草久久| 久久av一区| 亚洲一区二区精品在线| 免费在线播放第一区高清av| 蜜臀久久99精品久久久画质超高清| 亚洲国产99| 久久久久成人精品| 一区二区三区日韩欧美| 亚洲网站啪啪| 欧美三区在线| 亚洲欧美美女| 国产精品一页| 欧美激情视频一区二区三区在线播放| 国产日韩亚洲欧美综合| 久久不射2019中文字幕| 久久免费视频在线观看| 国产一区在线视频| 国语对白精品一区二区| av成人动漫| 亚洲伊人一本大道中文字幕| 国产精品日韩| 久久人人97超碰国产公开结果 | 欧美在线精品免播放器视频| 亚洲片在线资源| 欧美亚洲第一区| 久久久777| 欧美日韩亚洲一区二| 欧美怡红院视频| 久久一区二区三区超碰国产精品| 有码中文亚洲精品| 一区二区三区欧美在线| 激情视频一区二区| 99re国产精品| 亚洲免费观看高清在线观看| 亚洲永久在线观看| 亚洲国内自拍| 欧美亚洲一级片| 亚洲一区精品在线| 欧美激情视频一区二区三区在线播放 | 久久久亚洲影院你懂的| 欧美日韩视频在线| 亚洲国产婷婷香蕉久久久久久| 国产性做久久久久久| 最近中文字幕日韩精品| 欧美网站在线观看| 欧美日韩午夜视频在线观看| 免费人成精品欧美精品| 久久一区二区三区国产精品| 欧美一级播放| 欧美一区二区视频在线观看| 性一交一乱一区二区洋洋av| 亚洲欧美日产图| 国产精品成人播放| 欧美激情小视频| 国产精品自拍三区| 国产视频一区欧美| 亚洲国产视频一区二区| 一区二区三区 在线观看视频| 亚洲字幕一区二区| 国产视频不卡| 欧美精品久久久久久久久老牛影院| 噜噜噜91成人网| 亚洲理论在线观看| 久久高清免费观看| 欧美激情小视频| 欧美一区二区三区视频| 欧美激情一二区| 久久久精品2019中文字幕神马| 国产一区日韩一区| 欧美激情精品久久久久久免费印度 | 欧美视频精品一区| 亚洲一区二区三区中文字幕在线| 亚洲黄页视频免费观看| 亚洲一区二区三区精品在线观看 | 久久永久免费| 一片黄亚洲嫩模| 一区精品在线播放| 欧美日韩成人免费| 欧美在线短视频| 亚洲一区二区精品在线| 欧美国产高清| 亚洲电影观看| 亚洲精品在线电影| 亚洲电影在线免费观看| 亚洲第一黄网| 亚洲一区二区三区涩| 亚洲伊人久久综合| 久久亚洲精选| 性色av一区二区三区| 亚洲国产精品久久久久久女王| 欧美一区不卡| 国产欧美精品日韩区二区麻豆天美| 欧美影院视频| 美女脱光内衣内裤视频久久网站| 国产精品videossex久久发布| 一区二区三区视频在线 | 欧美视频福利| 亚洲天堂免费观看| 亚洲视频一二三| 国产精品免费视频观看| 日韩网站免费观看| 久色成人在线| 久久精品日韩| 亚洲国产精品福利| 美女黄网久久| 欧美激情第二页| 久久久国产精彩视频美女艺术照福利| 一区二区久久久久久| 欧美精品性视频| 久久精品在线视频| 美国十次成人| 欧美在线一二三区| 欧美日韩国产欧| 一本综合久久| 亚洲国产成人av在线| 国产精品久久久久久超碰| 午夜免费在线观看精品视频| 亚洲综合精品四区| 激情综合激情| 一本一本大道香蕉久在线精品| 欧美色图首页| 亚洲激情网站| 国产一区二区三区在线播放免费观看| 久久久久综合| 欧美日韩在线播放三区| 久久影院午夜论| 国产精品一区二区男女羞羞无遮挡| 亚洲午夜激情网页| 一本色道久久综合亚洲精品婷婷| 日韩视频一区二区三区在线播放免费观看| 欧美午夜精品久久久久免费视| 亚洲欧洲日产国产综合网| 亚洲日韩成人| 午夜视频精品| 亚洲精品视频一区| 欧美日韩国产系列| 亚洲人午夜精品| 亚洲专区一区二区三区| 久久综合伊人77777尤物| 亚洲欧美精品| 国产精品综合久久久| 午夜精品久久| 亚洲国产视频一区| 国产一区二区三区自拍| 一区二区三区四区精品| 欧美亚洲日本网站| 精品1区2区3区4区| 国产精品v欧美精品∨日韩| 一区二区三区毛片| 欧美一区激情| 亚洲激情成人| 国产精品毛片高清在线完整版| 亚洲高清在线视频| 狠狠88综合久久久久综合网| 一区在线播放| 久久久久久久97| 亚洲毛片在线观看| 美女日韩欧美| 悠悠资源网久久精品| 欧美精品在线一区二区| 在线视频免费在线观看一区二区| 欧美日韩一区综合| 欧美成人综合一区| 国产女优一区| 午夜欧美精品| 久久一区二区精品| 精品91在线|