欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
typedef用法
[打印本頁(yè)]
作者:
51黑er
時(shí)間:
2015-11-2 14:28
標(biāo)題:
typedef用法
typedef用法
typedef的作用:
1)用typedef簡(jiǎn)化指向多維數(shù)組的指針的定義(C++primer P124)
2)用typedef簡(jiǎn)化函數(shù)指針的定義(C++primer P237)
3) 用typedef簡(jiǎn)化復(fù)雜類(lèi)型的定義,如pair類(lèi)型和map的value_type(C++primer P307,P313)
對(duì)typedef用法的領(lǐng)悟:
以前一直以為typdef的用法不過(guò)是typedef A B就是把類(lèi)型B作為類(lèi)型A的一個(gè)新名字。但是碰到像typedef string *pstring或者是typedef int int_array[4]這樣的定義就比較傻眼。
然后慢慢摸爬滾打明白了typedef的精髓。那就是typdef,定義什么就是什么。
比如定義一個(gè)string類(lèi)型的指針變量,是string *str1;這個(gè)時(shí)候str1是變量名。
如果把這句話(huà)前面加上一個(gè)typdef,也就是typedef string *str2;這個(gè)時(shí)候str2就不是變量名,而是類(lèi)型名,它的類(lèi)型就是變量str1所具有的類(lèi)型。也就是string *類(lèi)型。
所以typedef string *pstring這句話(huà)的意思就豁然開(kāi)朗了,那么我以后可以拿pstring去定義別的變量,不如pstring pstr;這就定義了一個(gè)指向string的指針對(duì)象pstr。
再比如typedef int int_array[4];如果去掉前面的typedef那么定義的是一個(gè)叫做int_array的含有4個(gè)元素的數(shù)組。前面加上typedef以后,int_array就變成了含有4個(gè)元素的數(shù)組類(lèi)型的替代名。以后要有int_array ia;這句話(huà)我們就知道它等同于int ia[4];
再比如這一頁(yè)的指向函數(shù)的指針:
bool (*pf)(const string&, const string&)
使用typdef以后,定義這一類(lèi)型(即同樣的形參以及同樣的返回類(lèi)型)的函數(shù)指針語(yǔ)句都將得到簡(jiǎn)化。方法如下:
typedef bool (*cmpFcn)(const string&, const string&);
用新得到的類(lèi)型來(lái)定義兩個(gè)新的函數(shù)指針pf1和pf2,它們所指向的函數(shù)都有兩個(gè)const string&形參且返回bool類(lèi)型值。以下是定義:
cmpFcn pf1;
cmpFcn pf2;
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1