侯捷面向对象高级编程(二)
生活随笔
收集整理的這篇文章主要介紹了
侯捷面向对象高级编程(二)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
侯捷面向對象高級編程(二)
轉換函數
- 轉換函數沒有返回值,返回值就是double即函數名,不需要自己寫
- 因為轉換函數一般不會改變其中內容,所以要加const限定
- 兩條路都可以走,就回產生歧義,報錯
- explict禁止自動轉換,于是4無法轉轉換為Fraction
pointer-like cliasses
- ->作用之后還能繼續作用不會消耗掉
- *sp中的*作用于sp上后返回*px,而->作用后不會消失
function-like classes,仿函數
namespace 命名空間
放在不同命名空間,讓彼此沒有關聯
class template
function template
member template
即使T1,T2確定了,U1,U2也可以變
可以嵌套,但是p.first必須能給first賦值,即U1,U2是T1,T2的子類
再舉一個例子,同理
specialization 模板特化
我的理解就是,對不同的類型,采取有不同的行為
partial specialization 模板偏特化
事先綁定一個參數
- 如果不使用指針就用上面的情況 obj1
- 如果使用指針就用右下的情況 obj2
數量不定的模板參數
print是遞歸調用,能打印出全部元素
void print() // 最后一個元素打印時調用 {} 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); }虛函數,虛指針
一種理解:繼承中函數繼承的是調用權
const
函數后面加const只用于成語函數
COW: copy on write
總結
以上是生活随笔為你收集整理的侯捷面向对象高级编程(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8款流行前沿的HTML5文本编辑器
- 下一篇: 你知道为啥程序员下班后只关显示器从不关电