侯捷面向对象高级编程(二)
生活随笔
收集整理的這篇文章主要介紹了
侯捷面向对象高级编程(二)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
侯捷面向?qū)ο蟾呒?jí)編程(二)
轉(zhuǎn)換函數(shù)
- 轉(zhuǎn)換函數(shù)沒(méi)有返回值,返回值就是double即函數(shù)名,不需要自己寫
- 因?yàn)檗D(zhuǎn)換函數(shù)一般不會(huì)改變其中內(nèi)容,所以要加const限定
- 兩條路都可以走,就回產(chǎn)生歧義,報(bào)錯(cuò)
- explict禁止自動(dòng)轉(zhuǎn)換,于是4無(wú)法轉(zhuǎn)轉(zhuǎn)換為Fraction
pointer-like cliasses
- ->作用之后還能繼續(xù)作用不會(huì)消耗掉
- *sp中的*作用于sp上后返回*px,而->作用后不會(huì)消失
function-like classes,仿函數(shù)
namespace 命名空間
放在不同命名空間,讓彼此沒(méi)有關(guān)聯(lián)
class template
function template
member template
即使T1,T2確定了,U1,U2也可以變
可以嵌套,但是p.first必須能給first賦值,即U1,U2是T1,T2的子類
再舉一個(gè)例子,同理
specialization 模板特化
我的理解就是,對(duì)不同的類型,采取有不同的行為
partial specialization 模板偏特化
事先綁定一個(gè)參數(shù)
- 如果不使用指針就用上面的情況 obj1
- 如果使用指針就用右下的情況 obj2
數(shù)量不定的模板參數(shù)
print是遞歸調(diào)用,能打印出全部元素
void print() // 最后一個(gè)元素打印時(shí)調(diào)用 {} template<typename T ,typename... Types> void print(const T& first,const Types&... args) {std::cout << first<<std::endl;print(args...); } int main() {print(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); }虛函數(shù),虛指針
一種理解:繼承中函數(shù)繼承的是調(diào)用權(quán)
const
函數(shù)后面加const只用于成語(yǔ)函數(shù)
COW: copy on write
總結(jié)
以上是生活随笔為你收集整理的侯捷面向对象高级编程(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 8款流行前沿的HTML5文本编辑器
- 下一篇: 你知道为啥程序员下班后只关显示器从不关电