1. 重載的二義性錯(cuò)誤
重載的規(guī)則:參數(shù)不同
區(qū)分精準(zhǔn)和提升匹配
當(dāng)匹配有二義性的時(shí)候俺孙,注意找到錯(cuò)誤
2. 默認(rèn)實(shí)參
直接在參數(shù)里面?zhèn)魅雗um
這樣就可以直接調(diào)用mycout();
二義性:編譯器無(wú)法找到與之唯一匹配的東西
解決方法:1. 修改參數(shù) 2. 強(qiáng)制轉(zhuǎn)化
三、內(nèi)聯(lián)函數(shù)
在函數(shù)名前面加上“inline”表示內(nèi)聯(lián)函數(shù)
內(nèi)聯(lián)函數(shù)的優(yōu)缺點(diǎn):
好處:1. 不會(huì)新建棧 2. 將代碼展開(kāi) ? 運(yùn)行的效率大大提升
壞處:生成的體積會(huì)膨脹 .exe會(huì)很大
但加上inline不一定100%成為內(nèi)聯(lián)函數(shù)
(還是沒(méi)懂inline函數(shù)是啥 ...里面怎么用)
編譯器在什么時(shí)候使用inline函數(shù):
- 根據(jù)里面的棧的使用情況來(lái)解析笛坦。節(jié)約跳轉(zhuǎn)call的時(shí)間
- 分配棧的時(shí)候可以放在同一個(gè)函數(shù)里,一次性分配
- 代碼簡(jiǎn)單合是,展開(kāi)少身诺。函數(shù)調(diào)用少,調(diào)用層次少禾酱。
3. 類(lèi)型轉(zhuǎn)換
C語(yǔ)言中的類(lèi)型轉(zhuǎn)換:
強(qiáng)制轉(zhuǎn)換 int num = (int) 1.0003
c++語(yǔ)言轉(zhuǎn)換方式:
- int num = static_cast<int>(1.0003) // 不是強(qiáng)制轉(zhuǎn)換微酬,只是表示轉(zhuǎn)換。int不能轉(zhuǎn)char
- 也可以用const_cast <>(); //可以移出對(duì)象的常量性 變成非const
- reinterpret_cast <>(); //危險(xiǎn)..強(qiáng)制轉(zhuǎn)換颤陶,二進(jìn)制的層面的轉(zhuǎn)換
引用和指針的區(qū)別
引用(類(lèi)型名 & 引用名-> int &ref = num,val = 100;)
- 引用是變量的別名颗管,沒(méi)有獨(dú)立的內(nèi)存空間,他和指向的變量共用內(nèi)存空間滓走。所以它必須指向一個(gè)變量垦江,
- 引用被確定后就不能更改,不能指向其他變量搅方。
指針
- 指針擁有獨(dú)立的內(nèi)存空間
- 但是指針指向的某個(gè)變量的地址之后比吭, 還可以指向另外的一個(gè)變量地址
引用茬斧!啊94!靶辶铩慷彤!什么鬼啊怖喻! 我不學(xué)了