reference operator*()
pointer opeator->()
self& operator++()
self operator++
(int
)
template
class complex
complex<
double
>c1(
2.5,
1.5)
;
泛化與特化
有乙個最泛化的做法,若指定的t是某乙個獨特的type有更好的做法,
為了更好的做出某個獨特的專屬的做法就是特化。
例子為繪製直線:
數學方程式:泛化
對映到螢幕上的座標:特化
//泛化
template
struct _type_trasits
;_type_traints
::has_trivial_destructor//進入泛化
//特化 繫結為int
template<
>
struct _type_traits<
int>
;//特化
template<
>
struct _type_traits<
double
>
;//泛化
template
struct hash
;//特化 _stl_template_null 即template<>
_stl_template_null struct hash<
char
>
;_stl_template_null struct hash<
short
>
;_stl_template_null struct hash<
int>;.
....
.//泛化
template
class allocator;
//特化
template<
>
class allocator<
void
>
;}
偏特化(區域性特化)
區域性特化的區域性時指數量上的區域性。兩個變乙個,另乙個鎖定。(數量)
或者是若接受的是任意的型別,偏特化是設計為接受指標(範圍)
//泛化 vector可接受任何型別
template
class vector
;//偏特化 但是型別若為bool時,就是用這個偏特化的類
template
class vector
;//泛化 任意型別 乙個
template
struct iterator_traits
;//偏特化 接受的若是指標
template iterator_traits>
//偏特化
template
struct iterator_traits<
const t*
>
template
inline
const t&
min(
const t&a,
const t&b)
stone r1(2
,3),
r2(2,
3),r3;
r3=min
(r1,r2)
;//編譯器對function template進行實參推導
class stone
泛型過載操作符比較
class program static bool bijiao t a,t b where t class public class a public static bool operator a a1,a a2 return false public static bool operator a...
C C 之 操作符過載
1.成員函式過載操作符 除 外其他操作符都可過載 1 a.雙目操作符宣告格式 class 類名 b.雙目操作符定義格式 返回值型別 類名 operator 型別 c.雙目操作符使用格式 類名 a 類名 b a b 或a.operator b 2 a.單目操作符過載宣告格式 class 類名 b.單目...
C 之操作符過載
1.所謂過載,就是賦予其新的意義。函式可以過載,操作符也可以過載。操作符的過載給我們的程式設計帶來了很大的便利,因為操作符只能對基本的資料型別進行操作,而對使用者自定義的類等資料結構型別不支援。因此只能對其操作符進行過載之後,才能更加方便地操作我們自定義的類物件等資料型別。但是值得注意的是並不是c ...