17 int add(int a, int b) {
18 return a + b;
19 }
20
21 int main() {
22 D d1 = 1.1;
23 D d2 = 2.2;
24 std::cout << add(d1, d2) << std::endl;
25
26 return 0;
27 }
28
29
在24行執(zhí)行add(d1,d2)函數(shù)時(shí)“(int)D”重載函數(shù)將被調(diào)用,程序運(yùn)行的輸出為:
(int)d called!
(int)d called!
3
類型轉(zhuǎn)換操作符 vs 類型轉(zhuǎn)換構(gòu)造函數(shù)(conversion constructor)
有時(shí)候使用conversion constructor就能實(shí)現(xiàn)類型轉(zhuǎn)換,這種方式效率更高而且也更直觀,下面舉例說(shuō)明:
1 #include
2
3 class A
4 {
5 public:
6 A(int num = 0) : dat(num) {}
7
8 /* 重載"(int)a" */
9 operator int() { return dat; }
10
11 private:
12 int dat;
13 };
14
15
16 class X
17 {
18 public:
19 X(int num = 0) : dat(num) {}
相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試成績(jī)查詢時(shí)間匯總
2011年計(jì)算機(jī)等級(jí)考試二級(jí)C++輔導(dǎo)筆記匯總
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |