青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-14  評(píng)論-8  文章-0  trackbacks-0

      記得在看《windows 核心編程》第二十五章的 Spreadsheet 示例程序時(shí),我對(duì)其中 typedef 的用法很是困惑。當(dāng)時(shí)翻看了《Big c++》(我的第一本 c++ 書籍),很可惜,上面講得很簡(jiǎn)單,不足以解答我的疑惑。不知為什么當(dāng)時(shí)沒有堅(jiān)持去解決那個(gè)問題,一直到現(xiàn)在才想起來對(duì) typedef 做個(gè)全面的回顧。STL 和 BOOST 為我們呈現(xiàn)了眾多精彩的應(yīng)用,typedef 功不可沒。先看看 《c++ primer》 怎么說的:

      Introduces a synonym for some other type. Form:

      為某種類型引入同義詞。格式:

      typedef type synonym;
     

      defines synonym as another name for the type named type.

      定義 synonym 為名為 type 的類型的另一名字。

      在看《核》一書的時(shí)候,我的了解就這么一點(diǎn)。為什么我看不懂呢?看看《核》中的用法:

const int g_nNumRows = 256;
const int g_nNumCols = 1024;

typedef struct {
    DWORD dwValue;
    BYTE  bDummy[1020];
} CELL, *PCELL;

typedef CELL SPREADSHEET[g_nNumRows][g_nNumCols];
typedef SPREADSHEET *PSPREADSHEET;
    按照當(dāng)時(shí)的想法,句子 SPREADSHEET[g_nNumRows][g_nNumCols] sh 的意思應(yīng)該是 CELL sh ,不就該是這樣的嗎(因?yàn)樗皇莻€(gè)別名/馬甲)?但在我那個(gè)想法里 sh 可不是數(shù)組,所以我當(dāng)時(shí)無法理解 sh 后來的行為。形式主義,對(duì),形式主義影響了我,當(dāng)時(shí)我就一徹底的形式主義者。我還想再一遍地重復(fù)這個(gè)詞,不過那也太給它面子了。算了, Not worth to fight!(哈,最近看的一部精彩的家庭喜劇中的臺(tái)詞。這部劇名叫《the middle》)。《核》一書中接下來還有一個(gè)精彩的用法,為了簡(jiǎn)化代碼,我把它寫成這個(gè)樣子:
class Base {
public:
    virtual ~Base();
    void fn();
    ...
private:
    int n;
};

class Derive : public Base {
    ...
    //no data member allow, just function here.
};
static Derive g_ssObject;
SPREADSHEET& g_ss = *(PSPREADSHEET)(PCELL)g_ssObject;
    如此一來,g_ss 就有了 Base 的 n 成員和 256 * 1024 個(gè) CELL 結(jié)構(gòu)。當(dāng)向 Derive 對(duì)象使用 [] 時(shí)(它是 SPREADSHEET& 型),它的行為就跟數(shù)組一致了(n 成員不會(huì)索引到,這也是不允許派生類有數(shù)據(jù)成員的原因)。關(guān)于它的內(nèi)存并沒有在它聲明的時(shí)候開辟,以及后來怎么開辟,那就是另一個(gè)冒險(xiǎn)故事了。這種手法讓我再一次為《核》這本書所折服。
    好了,回到 typedef 。我見得最多的用法不外乎 typedef int value_type ,“取綽號(hào)”是他的職責(zé)所在,我不能只把它理解為:當(dāng)你看到 B( value_type ) 時(shí),它只不過是 A ( int ),還要把它理解為像上面提到的一樣:SPREADSHEET 并不只是一個(gè) CELL ,而是多個(gè) CELL 組成的 Array 的首個(gè)元素的位置指針,不然后面的兩個(gè)跟屁蟲雙胞胎 “[][]” 作何解釋。我的這種想法讓我想起了 ATL 中的 OLECHAR ,在那里我也曾是個(gè)形式主義者(又重復(fù)了一遍!)。OLECHAR 在特定的平臺(tái)上有特定的意義,比如在 windows 平臺(tái)并定義了 UNICODE 的情況下,它是 wchar_t 。如果保持這種理解,將無法把它當(dāng)做一種特別的類型,從而在語言層面上有了障礙,也就違背了 OLECHAR 生來是為 COM 組件做“特殊”服務(wù)的本意。我們要把它當(dāng)做基本類型看待,至于怎么看待以及詳細(xì)的方法,另一個(gè)冒險(xiǎn)故事…… 所以,“取綽號(hào)”專家的內(nèi)涵并不單薄,我不能一廂情愿的認(rèn)為他只是個(gè)愛捉弄人的討厭鬼,它正經(jīng)起來可也是一表人才滴。下面是一些 typedef 的用法(來自《c++模板元編程》中某習(xí)題的解答):
class foo {...};

typedef int (foo::*pmd);    // pmd 解釋為:指向 foo 數(shù)據(jù)成員的指針,返回值為 int
typedef int (foo::*pmf)();  // pmf 解釋為:指向 foo 函數(shù)成員的指針,返回值為 int
typedef int (*pfunc)();     // pfunc 解釋為:指向函數(shù)的指針,返回值為 int 且無參數(shù)(有參數(shù)的也就不難想象了)
typedef const int& refc;    // 不說這個(gè)了
    上面的展示非常不全面,網(wǎng)上總結(jié)的東西一大堆,我不能偷懶引用,去看才實(shí)在。不過有了這些知識(shí),理解其它東西應(yīng)該足夠了。
posted on 2009-12-09 21:20 崇文 閱讀(523) 評(píng)論(0)  編輯 收藏 引用

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久资源在线| 欧美日本韩国一区| 国产精品一区二区三区久久| 在线视频免费在线观看一区二区| 亚洲美女福利视频网站| 欧美日韩午夜激情| 午夜精品一区二区三区四区| 亚洲一区精品电影| 国产曰批免费观看久久久| 欧美va天堂| 欧美日韩国产综合视频在线| 亚洲午夜精品一区二区| 亚洲免费在线| 在线日韩视频| 亚洲每日在线| 国产一区二区激情| 欧美激情无毛| 国产精品日韩久久久| 久久视频在线免费观看| 欧美成人资源网| 亚洲欧美一区二区在线观看| 久久岛国电影| 亚洲视频你懂的| 欧美一区二区三区在线| 亚洲人成在线影院| 亚洲天堂免费在线观看视频| 在线成人www免费观看视频| 亚洲精品中文字幕在线观看| 国产乱码精品一区二区三区忘忧草| 久久综合久久综合久久综合| 欧美激情一区| 久久综合伊人77777| 欧美日韩另类在线| 久久最新视频| 国产精品青草久久| 欧美jizzhd精品欧美巨大免费| 欧美系列一区| 欧美大片免费久久精品三p| 国产精品久久久久免费a∨| 美女视频黄a大片欧美| 国产精品激情av在线播放| 欧美激情亚洲另类| 国产婷婷色一区二区三区| 日韩亚洲精品视频| 亚洲黄色影片| 久久精品91| 欧美一区二区三区四区夜夜大片| 欧美激情视频一区二区三区在线播放| 久久一区激情| 国产视频在线观看一区二区三区| 99精品国产在热久久下载| 亚洲韩国青草视频| 久久影音先锋| 每日更新成人在线视频| 国产一区二区剧情av在线| 夜夜爽99久久国产综合精品女不卡 | 午夜性色一区二区三区免费视频| 嫩模写真一区二区三区三州| 久久免费偷拍视频| 国产九色精品成人porny| 亚洲一级黄色| 亚洲欧美激情在线视频| 欧美三级在线视频| 亚洲精品乱码久久久久久日本蜜臀 | 亚洲区欧美区| 免费日韩精品中文字幕视频在线| 浪潮色综合久久天堂| 国产亚洲欧美一区二区三区| 亚洲综合不卡| 欧美在线视频网站| 国产婷婷精品| 欧美综合二区| 久久婷婷国产综合国色天香| 国产一区视频观看| 久久久国产精品一区二区三区| 久久福利资源站| 国产亚洲永久域名| 欧美一区二区日韩一区二区| 久久久久久久999精品视频| 国产在线视频欧美| 久久久噜噜噜久久人人看| 欧美成人午夜激情在线| 亚洲区国产区| 欧美视频观看一区| 亚洲欧美国产精品桃花| 久久九九免费视频| 亚洲黄色在线看| 欧美日韩在线第一页| 亚洲欧美成人一区二区在线电影| 久久精品成人一区二区三区蜜臀| 黄色成人av网| 欧美精品一区三区在线观看| 夜夜嗨av一区二区三区四季av | 一本色道久久综合亚洲精品不| 欧美日精品一区视频| 亚洲午夜未删减在线观看| 欧美主播一区二区三区美女 久久精品人| 国产在线不卡视频| 欧美激情网友自拍| 午夜精品久久久| 亚洲国产精品毛片| 亚洲欧美日韩人成在线播放| 极品尤物av久久免费看| 欧美激情在线观看| 欧美在线观看视频在线| 亚洲经典一区| 久久人体大胆视频| 亚洲少妇一区| 国内外成人免费视频| 欧美日韩成人在线播放| 欧美在线www| 一区二区三区视频在线| 欧美国产1区2区| 欧美一区二区三区四区夜夜大片| 亚洲精品国偷自产在线99热| 国产女主播一区二区| 欧美日韩一区国产| 欧美.www| 久久九九热re6这里有精品| 中日韩美女免费视频网站在线观看| 美女主播一区| 久久电影一区| 亚洲欧美一区二区精品久久久| 亚洲人成网在线播放| 一区视频在线播放| 国产视频在线一区二区| 国产精品久久久久久久第一福利| 男人的天堂成人在线| 欧美一区日本一区韩国一区| 亚洲视频你懂的| 亚洲精品久久久一区二区三区| 欧美成人精品福利| 噜噜噜噜噜久久久久久91| 性欧美暴力猛交另类hd| 亚洲欧美三级在线| 亚洲小视频在线| 亚洲视频你懂的| 国产精品99久久久久久久久| 日韩小视频在线观看| 亚洲黄色成人| 亚洲精品久久| 亚洲激情成人在线| 亚洲国产精品一区二区久| 国内一区二区三区| 激情成人在线视频| 精品99视频| 在线观看一区欧美| 精品电影在线观看| 在线观看国产欧美| 亚洲第一色在线| 亚洲精品免费一二三区| 亚洲精品黄色| 亚洲视频免费观看| 亚洲欧美日韩在线观看a三区 | 影音先锋亚洲精品| 在线欧美日韩精品| 亚洲国产精品一区制服丝袜| 亚洲国产专区校园欧美| 亚洲精选在线观看| 亚洲最黄网站| 欧美亚洲自偷自偷| 久久综合电影一区| 亚洲国产欧美一区二区三区同亚洲| 亚洲福利视频三区| 日韩午夜三级在线| 香蕉成人伊视频在线观看| 久久精品理论片| 欧美精品v国产精品v日韩精品| 欧美日韩亚洲不卡| 国产欧美一区二区精品性色| 精品成人国产| 亚洲无人区一区| 久久久久久网址| 亚洲高清免费在线| 亚洲午夜久久久久久久久电影网| 亚洲欧美日韩久久精品| 久久综合色综合88| 欧美色图一区二区三区| 韩国v欧美v日本v亚洲v| 亚洲毛片视频| 欧美综合激情网| 亚洲精品国产无天堂网2021| 亚洲小说春色综合另类电影| 久久看片网站| 国产精品久久久久久久久久免费| 狠狠色综合网| 午夜精品亚洲| 亚洲国内自拍| 久久av在线| 国产精品久久久久久久久免费桃花 | 国产精品jizz在线观看美国 | 尤物精品国产第一福利三区| 9国产精品视频| 久久青草福利网站| 日韩视频精品在线| 久久综合网色—综合色88| 国产精品久久久久久久久动漫| 亚洲黄色性网站| 久久久久久久性| 一区二区黄色|