namespace經驗談:
團隊中函數或類的名字可能會沖突,是以使用namespace進行區分。
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPB10drpmT4VkeNBDOsJGcohVYsR2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLygzN4IjNyETM1IzMwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
類模闆:
template<typename T>
函數模闆:
template<class T>,此處class可改成typename
函數模闆在使用的時候,不必指明類型,因為函數模闆是去調用該函數,會在調用的時候傳入參數,編譯器會對函數模闆進行參數推導,而類模闆則需指明類型。
成員模闆:
在一個類中有一個成員,該成員是template,則稱該成員為成員模闆。
template <class U1,class U2>
pair(const pair<U1,U2>&p):
first(p.first),second(p.second){}
該pair類允許任意的T1,T2,也允許任意的U1,U2,但是在編譯的過程中必須滿足first(p.first),second(p.second)的初始化指派過程,在該示例中即,鲫魚,麻雀初始化指派到first和second中沒有問題,而反之則編譯不能通過。