函数指针,指针函数,数组指针,指针数组 区分
what /why/how
?這些怎么區(qū)分:
函數(shù)指針:重點(diǎn)在指針,表示它是一個(gè)指針,它指向的是一個(gè)函數(shù)。eg: int (*fun)();
指針函數(shù):重點(diǎn)在函數(shù),表示它是一個(gè)函數(shù),它的返回值是指針。 eg: int* ?fun();
?
數(shù)組指針:重點(diǎn)在指針,表示它是一個(gè)指針,它指向的是一個(gè)數(shù)組。int (*fun)[8];
指針數(shù)組:重點(diǎn)在數(shù)組,表示它是一個(gè)數(shù)組,它包含的元素是指針 itn* ?fun[8];
?
類模板(class ? template)? - 模板類(template ? class) 區(qū)分:
類模板:重點(diǎn)在模板,表示它是一個(gè)模板,專門用于產(chǎn)生類的模子。
template <tempname T>
class ? Vector
{
.....................................
}
使用這個(gè)Vector模板就可以產(chǎn)生很多的class(類),Vector <int> 、Vector <char> 、Vector < ? Vector <int> ? >。
模板類: 重點(diǎn)在類,表示的是由一個(gè)模板生成而來(lái)的類。
例子:上面的Vector <int> 、Vector <char> 、……全是模板類。?
?
函數(shù)模板(function ? template)——模板函數(shù)(template ? function)?
函數(shù)模板的重點(diǎn)是模板。表示的是一個(gè)模板,專門用來(lái)生產(chǎn)函數(shù)。
eg:
template <tempname T>
void ? fun(T ? a)?
{?
? ? ? ? ? ? …?
}?
在運(yùn)用的時(shí)候,可以顯式(explicitly)生產(chǎn)模板函數(shù),fun(int) ,fun(double) , fun(shape*)。
也可以在使用的過(guò)程中由編譯器進(jìn)行模板參數(shù)推導(dǎo),幫你隱式(implicitly)生成。
fun(1) ? ? ? ? ?//隱式的生成fun(int)
func(1.2) ? ?//隱式的生成fun(double)
func('a') ? ?//隱式的生成fun(char)
Shape* ?ps = new ?ch;
?fun(ps); ? ?//隱式的生成fun(Shape*)
?
模板函數(shù):重點(diǎn)在函數(shù),表示的是由一個(gè)模板生成而來(lái)的函數(shù)。
面顯式(explicitly)或者隱式(implicitly)生成的fun <int> 、fun <Shape*> ……都是模板函數(shù)。
?
?
從文章的討論中,可以看到,名字是非常重要的,如果對(duì)名字的使用不恰當(dāng)?shù)脑?#xff0c;會(huì)引起很多的麻煩和誤解。有時(shí)候還是需要付出一定的代價(jià)。?
?
轉(zhuǎn)載于:https://www.cnblogs.com/wutengbiao/p/5029131.html
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的函数指针,指针函数,数组指针,指针数组 区分的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ## #@ #
- 下一篇: sql server转oracle需要注