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

隨筆-14  評論-8  文章-0  trackbacks-0

      記得在看《windows 核心編程》第二十五章的 Spreadsheet 示例程序時,我對其中 typedef 的用法很是困惑。當(dāng)時翻看了《Big c++》(我的第一本 c++ 書籍),很可惜,上面講得很簡單,不足以解答我的疑惑。不知為什么當(dāng)時沒有堅(jiān)持去解決那個問題,一直到現(xiàn)在才想起來對 typedef 做個全面的回顧。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 的類型的另一名字。

      在看《核》一書的時候,我的了解就這么一點(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)時的想法,句子 SPREADSHEET[g_nNumRows][g_nNumCols] sh 的意思應(yīng)該是 CELL sh ,不就該是這樣的嗎(因?yàn)樗皇莻€別名/馬甲)?但在我那個想法里 sh 可不是數(shù)組,所以我當(dāng)時無法理解 sh 后來的行為。形式主義,對,形式主義影響了我,當(dāng)時我就一徹底的形式主義者。我還想再一遍地重復(fù)這個詞,不過那也太給它面子了。算了, Not worth to fight!(哈,最近看的一部精彩的家庭喜劇中的臺詞。這部劇名叫《the middle》)。《核》一書中接下來還有一個精彩的用法,為了簡化代碼,我把它寫成這個樣子:
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 個 CELL 結(jié)構(gòu)。當(dāng)向 Derive 對象使用 [] 時(它是 SPREADSHEET& 型),它的行為就跟數(shù)組一致了(n 成員不會索引到,這也是不允許派生類有數(shù)據(jù)成員的原因)。關(guān)于它的內(nèi)存并沒有在它聲明的時候開辟,以及后來怎么開辟,那就是另一個冒險(xiǎn)故事了。這種手法讓我再一次為《核》這本書所折服。
    好了,回到 typedef 。我見得最多的用法不外乎 typedef int value_type ,“取綽號”是他的職責(zé)所在,我不能只把它理解為:當(dāng)你看到 B( value_type ) 時,它只不過是 A ( int ),還要把它理解為像上面提到的一樣:SPREADSHEET 并不只是一個 CELL ,而是多個 CELL 組成的 Array 的首個元素的位置指針,不然后面的兩個跟屁蟲雙胞胎 “[][]” 作何解釋。我的這種想法讓我想起了 ATL 中的 OLECHAR ,在那里我也曾是個形式主義者(又重復(fù)了一遍!)。OLECHAR 在特定的平臺上有特定的意義,比如在 windows 平臺并定義了 UNICODE 的情況下,它是 wchar_t 。如果保持這種理解,將無法把它當(dāng)做一種特別的類型,從而在語言層面上有了障礙,也就違背了 OLECHAR 生來是為 COM 組件做“特殊”服務(wù)的本意。我們要把它當(dāng)做基本類型看待,至于怎么看待以及詳細(xì)的方法,另一個冒險(xiǎn)故事…… 所以,“取綽號”專家的內(nèi)涵并不單薄,我不能一廂情愿的認(rèn)為他只是個愛捉弄人的討厭鬼,它正經(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;    // 不說這個了
    上面的展示非常不全面,網(wǎng)上總結(jié)的東西一大堆,我不能偷懶引用,去看才實(shí)在。不過有了這些知識,理解其它東西應(yīng)該足夠了。
posted on 2009-12-09 21:20 崇文 閱讀(519) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發(fā)表評論。
網(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>
            久久av一区二区三区亚洲| 欧美日韩亚洲国产精品| 国产农村妇女毛片精品久久麻豆| 久久久欧美精品| 亚洲日韩中文字幕在线播放| 免费久久久一本精品久久区| 亚洲国产精品一区二区尤物区 | 另类图片国产| 亚洲欧美日韩精品在线| 国产精品久久久久毛片软件| 午夜激情综合网| 亚洲欧美日韩精品在线| 韩日欧美一区| 亚洲国产欧美一区二区三区同亚洲| 亚洲激情影视| 欧美日韩另类综合| 久久久久一区二区| 欧美a级一区| 亚洲午夜视频| 香蕉久久夜色精品国产使用方法| 快播亚洲色图| 99视频一区二区三区| 在线视频欧美一区| 国内精品写真在线观看| 亚洲精品影视| 国产精品久久久一区二区三区| 伊人久久大香线| 亚洲缚视频在线观看| 欧美日精品一区视频| 性色av一区二区怡红| 麻豆精品在线播放| 欧美一区二区高清在线观看| 久久只精品国产| 亚洲欧美在线x视频| 久热精品视频在线观看| 亚洲综合色自拍一区| 老鸭窝91久久精品色噜噜导演| 国产一区二区三区观看| 亚洲国产综合在线| 国产精品美女一区二区| 欧美成人性生活| 国产视频精品xxxx| 亚洲剧情一区二区| 激情国产一区| 亚洲欧美第一页| 一本久久精品一区二区| 久久精品二区| 欧美亚洲视频在线看网址| 欧美区亚洲区| 欧美激情一区二区三区| 国产欧美一区二区三区在线老狼| 亚洲一区二区在| 欧美成人精品福利| 久久精品国产亚洲aⅴ| 欧美一区日韩一区| 中文国产成人精品| 欧美超级免费视 在线| 久久综合伊人77777麻豆| 国产精品国产三级欧美二区| 亚洲人成毛片在线播放女女| 在线观看一区| 久久国产日韩| 久久精品91久久久久久再现| 国产伦精品一区二区三区高清 | 欧美国产精品专区| 久久综合中文色婷婷| 国产日韩一级二级三级| 亚洲欧美资源在线| 欧美一区深夜视频| 国产日韩精品视频一区| 午夜国产精品视频| 久久久精彩视频| 国产精品美女久久福利网站| 亚洲色图在线视频| 亚洲免费在线| 国产欧美日韩精品a在线观看| 久久亚洲精品中文字幕冲田杏梨| 久久国产一区二区| 久久成人一区| 国产亚洲日本欧美韩国| 久久成年人视频| 麻豆精品视频在线观看| 亚洲激情网站| 欧美久久综合| 亚洲无毛电影| 久久视频在线免费观看| 在线精品亚洲| 欧美日韩国产91| 亚洲四色影视在线观看| 欧美制服丝袜第一页| 国产综合香蕉五月婷在线| 久久亚洲国产精品日日av夜夜| 亚洲精品女av网站| 欧美剧在线免费观看网站| 亚洲午夜国产一区99re久久| 久久久久久久精| 在线日韩av片| 欧美乱人伦中文字幕在线| 亚洲一区二区黄色| 久久综合电影一区| 一本色道久久加勒比精品| 国产精品久久久久久久久| 久久精品国亚洲| 91久久精品网| 久久久国产成人精品| 亚洲免费观看高清在线观看 | 一本色道久久精品| 久久激情综合| 亚洲精品一区二区在线观看| 国产精品xxxxx| 久久久久天天天天| 艳女tv在线观看国产一区| 久久精品国产一区二区三区| 亚洲精品美女久久7777777| 国产精品看片资源| 美女尤物久久精品| 亚洲在线观看| 日韩视频国产视频| 欧美成人按摩| 免费不卡在线观看| 久久五月天婷婷| 亚洲一二三区精品| 亚洲第一页自拍| 国产精品系列在线播放| 欧美激情一区三区| 久久九九热re6这里有精品| 一区二区三区欧美亚洲| 欧美国产日韩在线| 久久久久9999亚洲精品| 亚洲在线视频免费观看| 亚洲激情综合| 精品69视频一区二区三区| 国产精品成人va在线观看| 欧美精品成人在线| 免播放器亚洲| 蜜臀a∨国产成人精品| 欧美一区二区三区婷婷月色| 亚洲视频在线播放| 99国产精品久久久久久久久久 | 欧美人妖在线观看| 久久久精品久久久久| 亚洲少妇中出一区| 日韩亚洲精品视频| 亚洲人成网站影音先锋播放| 开元免费观看欧美电视剧网站| 在线看日韩av| 黄色国产精品| 激情婷婷久久| 国产主播喷水一区二区| 国产日韩亚洲欧美综合| 国产一区免费视频| 国产亚洲a∨片在线观看| 国产精品综合色区在线观看| 欧美日韩一区二区视频在线| 欧美日韩123| 欧美日韩一区在线| 国产精品播放| 国产精品毛片a∨一区二区三区| 性做久久久久久| 亚洲午夜一区二区| 亚洲欧美在线一区| 欧美一区二区三区在线视频 | 午夜激情综合网| 久久黄金**| 久久综合九色综合久99| 裸体歌舞表演一区二区| 欧美大秀在线观看| 亚洲日本视频| 亚洲桃色在线一区| 亚洲欧美另类在线| 久久久综合激的五月天| 欧美激情女人20p| 欧美午夜视频| 狠狠色丁香久久综合频道| 亚洲第一搞黄网站| 在线综合亚洲| 久久精品盗摄| 欧美黄色免费| 亚洲伊人伊色伊影伊综合网 | 午夜久久影院| 欧美91福利在线观看| 亚洲国产精品一区在线观看不卡| 午夜精品视频在线观看| 久久久噜噜噜久噜久久| 麻豆精品精品国产自在97香蕉| 亚洲视频播放| 久久综合九色综合久99| 亚洲精品国产精品乱码不99 | 亚洲男人第一av网站| 久久美女艺术照精彩视频福利播放| aa成人免费视频| 在线亚洲欧美视频| 欧美乱妇高清无乱码| 国产精自产拍久久久久久| 亚洲高清资源综合久久精品| 亚洲欧美日韩精品久久久久| 免费欧美视频| 亚洲一区二区三区乱码aⅴ| 欧美11—12娇小xxxx| 国产在线播放一区二区三区|