国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

初學者編程入門:C++實用技巧講解

2019-11-17 05:37:34
字體:
來源:轉載
供稿:網友
在準標準C++中,有關缺省變量值的限制非常模糊。基于此,很多編譯器答應開發人員將缺省變量值包含在函數聲明,指向函數的指針和引用,成員函數的指針,以及typedef聲明中。

請看一下以下的程序:

strUCt A{void func(int x=5){}};void g(int n=12){}// 根據C++標準,不能在以下聲明中使用缺省變量值。void (*pf)(inti=120); void (A::*pmf)(int j=50);typedef void (*PF)(inti=100);// 函數的引用typedef void (&PRF)(inti=100);int main(){pf=g;PF pf2=g;pmf=&A::func;A a;//這些調用使用了哪些缺省值?pf();pf2();(a.*pmf)();}

A::func()和g()具有缺省變量值,這是合理的。然而,指針pmf,pf以及typedefPF也定義了缺省的變量值。根據C++標準,這是不規范的。

這一代碼的實際使用中,其中的一個問題是這些聲明中提供的缺省值與A::func()和g()函數提供的值不一致。也就是說,很多編譯器將這些代碼作為非標準的擴展。當調用g()函數時,我的編譯將120作為pf的缺省值;然而,對于pf2,它使用100作為它的缺省值。

作為一種規則,應該避免使用指向函數的指針,成員函數的指針,以及typedef命名的缺省變量值。即使你的編譯器接受了它們,在更高版本中它也可能不被接受。而且,這些代碼也會降低程序的靈巧性,也會給那些無法判別哪些編譯器接收何種缺省變量的開發人員帶來誤導。在使用這些缺省變量值的合法代碼中,這里的建議是添加一些必要的注釋,以說明需要哪些缺省變量值。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 河池市| 辽阳县| 卢氏县| 红河县| 唐海县| 古田县| 山阴县| 化德县| 建德市| 鄂托克前旗| 泸州市| 湘西| 密云县| 张掖市| 肇庆市| 辉南县| 中卫市| 瓦房店市| 德钦县| 横峰县| 嵊泗县| 新化县| 合阳县| 无锡市| 商水县| 习水县| 龙川县| 宜良县| 亚东县| 永善县| 绥棱县| 金坛市| 布拖县| 福清市| 昌平区| 靖江市| 三明市| 酉阳| 郁南县| 九江县| 渭南市|