函數(shù)指針和指針函數(shù)
函數(shù)指針的重點(diǎn)是指針镊绪。表示的是一個(gè)指針夹攒,它指向的是一個(gè)函數(shù)寒亥,
例子: int (*pf)();
指針函數(shù)的重點(diǎn)是函數(shù)邮府。表示的是一個(gè)函數(shù),它的返回值是指針溉奕。
例子: int* fun();
數(shù)組指針和指針數(shù)組
數(shù)組指針的重點(diǎn)是指針褂傀。表示的是一個(gè)指針,它指向的是一個(gè)數(shù)組加勤,
例子: int (pa)[8];
指針數(shù)組的重點(diǎn)是數(shù)組紊服。表示的是一個(gè)數(shù)組,它包含的元素是指針胸竞。
例子; int ap[8];
類模板和模板類
類模板的重點(diǎn)是模板欺嗤。表示的是一個(gè)模板,專門用于產(chǎn)生類的模子卫枝。
例子:
template <typename T>
class Vector
{
…
};
使用這個(gè)Vector模板就可以產(chǎn)生很多的class(類)煎饼,Vector <int> 、Vector <char> 校赤、Vector < Vector <int> > 吆玖、Vector <Shape*> ……。 模板類的重點(diǎn)是類马篮。表示的是由一個(gè)模板生成而來的類沾乘。例子: 上面的Vector <int> 、Vector <char> 浑测、……全是模板類翅阵。
函數(shù)模板和模板函數(shù)
函數(shù)模板的重點(diǎn)是模板歪玲。表示的是一個(gè)模板,專門用來生產(chǎn)函數(shù)掷匠。
例子:
template <typename T>
void fun(T a)
{
…
}
在運(yùn)用的時(shí)候滥崩,可以顯式(explicitly)生產(chǎn)模板函數(shù),
fun <int> 讹语、fun <double> 钙皮、fun <Shape*> ……。
也可以在使用的過程中由編譯器進(jìn)行模板參數(shù)推導(dǎo)顽决,幫你隱式(implicitly)生成短条。
fun(6);//隱式生成fun <int>
fun(8.9);//隱式生成fun <double>
fun(‘a(chǎn)’);// 隱式生成fun <char>
Shape* ps=new Cirlcle; fun(ps);//隱式生成fun <Shape*>
模板函數(shù)的重點(diǎn)是函數(shù)。表示的是由一個(gè)模板生成而來的函數(shù)才菠。例子: 上面顯式(explicitly)或者隱式(implicitly)生成的fun <int> 茸时、fun <Shape*> ……都是模板函數(shù)。