1.模板
只寫(xiě)一套代碼來(lái)完成重載功能
(eg:兩數(shù)比大小,這兩個(gè)數(shù)類(lèi)型可以是int,char,float)
- 函數(shù)模板
template <typename T>
template <class T>
T min(T x,T y)
{ return(x<y)?x:y;}
- 類(lèi)模板
template <class T>
template <typename T1,typename T2>
void myClass<T1,T2>::show()
{
cout<<"I="<<I<<", J="<<J<<endl;
}
2. 自動(dòng)類(lèi)型推斷
// 簡(jiǎn)單自動(dòng)類(lèi)型推斷
auto a = 123;
cout << "type of a is " << typeid(a).name() << endl;
auto s("fred");
cout << "type of s is " << typeid(s).name() << endl;
// 冗長(zhǎng)的類(lèi)型說(shuō)明(如迭代器)
vector<int> vec;
auto iter = vec.begin();
cout << "type of iter is " << typeid(iter).name() << endl;
image.png