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

隨筆-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>
            久久精彩免费视频| 国产精品美女久久久浪潮软件 | 国产精品另类一区| 欧美日本国产在线| 欧美国产精品久久| 欧美激情中文字幕一区二区| 欧美xxx在线观看| 欧美激情视频网站| 欧美日韩国产免费| 欧美日韩国产一区二区三区| 欧美日韩国产精品专区| 国产精品久久国产精麻豆99网站| 国产精品美女久久久久av超清 | 亚洲精品日韩激情在线电影 | 在线视频欧美精品| 欧美日产在线观看| 亚洲二区在线视频| 性欧美大战久久久久久久久| 欧美一区在线看| 久久永久免费| 久久综合五月| 亚洲另类自拍| 欧美一区二区三区在线观看| 蜜桃久久av一区| 国产精品久久国产三级国电话系列| 国产在线视频欧美一区二区三区| 在线日韩成人| 亚洲男人av电影| 另类图片综合电影| 999在线观看精品免费不卡网站| 亚洲欧美日韩专区| 欧美大胆a视频| 国产一区二区三区免费观看| 亚洲乱亚洲高清| 欧美中文在线观看| 亚洲精品久久久久久久久久久久久 | 六月婷婷一区| 国产精品久久久一本精品| 亚洲第一区中文99精品| 亚洲欧美美女| 亚洲人成亚洲人成在线观看| 亚洲欧美一区二区激情| 欧美成人a视频| 黄色国产精品| 亚洲欧美制服另类日韩| 欧美激情1区2区| 久久国产一区二区| 国产欧美韩日| 亚洲一区二区视频在线观看| 欧美国产在线观看| 久久精品国产清高在天天线| 国产欧美在线播放| 亚洲综合色网站| 亚洲高清三级视频| 老司机久久99久久精品播放免费 | 国产欧美一区二区精品秋霞影院 | 国自产拍偷拍福利精品免费一| 亚洲视频在线观看三级| 亚洲激情成人网| 欧美69wwwcom| 国内精品久久久久影院优| 亚洲欧美日韩视频一区| 亚洲天堂视频在线观看| 欧美日韩精品综合在线| 99伊人成综合| 久久精品国产精品亚洲精品| 欧美在线看片| 国产麻豆一精品一av一免费| 亚洲一区二区免费看| 亚洲日韩欧美视频一区| 欧美精品在线播放| 日韩视频免费在线| 日韩视频在线永久播放| 欧美日韩一区综合| 亚洲一区二区三区在线| 亚洲午夜未删减在线观看| 国产精品三级久久久久久电影| 午夜精品久久久久久久99热浪潮| 亚洲图片欧美午夜| 国产精品麻豆成人av电影艾秋| 亚洲欧美另类在线观看| 久久爱www久久做| 亚洲激情第一页| 亚洲裸体俱乐部裸体舞表演av| 欧美亚洲第一区| 久久国产精品一区二区| 久久久综合视频| 一本色道久久综合亚洲精品小说| 一本久久综合| 很黄很黄激情成人| 亚洲国产成人av| 国产精品嫩草久久久久| 久久综合久久综合久久综合| 欧美承认网站| 亚洲中无吗在线| 欧美一区二区精品久久911| 亚洲成人在线免费| 91久久国产综合久久| 国产精品一区二区在线观看不卡| 久久永久免费| 欧美日韩综合另类| 久久gogo国模啪啪人体图| 久久综合一区二区| 亚洲一区二区伦理| 免费观看不卡av| 午夜一区不卡| 欧美二区视频| 久久精品国产999大香线蕉| 久久综合色综合88| 欧美一区二区三区免费在线看 | 亚洲已满18点击进入久久| 在线精品视频一区二区三四| 亚洲美女视频| 亚洲国产高潮在线观看| 亚洲一区激情| 亚洲国产专区| 久久国产黑丝| 欧美一区在线视频| 欧美日韩亚洲视频| 欧美暴力喷水在线| 国产日本亚洲高清| 91久久综合| 亚洲国产高清aⅴ视频| 亚洲欧美日本伦理| 亚洲一区网站| 欧美日韩视频在线观看一区二区三区| 久久躁日日躁aaaaxxxx| 国产亚洲成av人在线观看导航| 亚洲第一福利在线观看| 99亚洲视频| 亚洲精品国产日韩| 久久一区二区三区av| 香蕉成人伊视频在线观看| 欧美日韩国产在线一区| 欧美激情精品久久久久久大尺度 | 国产一区二区三区日韩| 亚洲无线观看| 亚洲视频一起| 欧美人与性禽动交情品| 亚洲激情影院| 日韩午夜在线视频| 欧美日韩国产大片| 一区二区毛片| 亚洲欧美在线网| 国产欧美一区二区三区国产幕精品| 一本一本久久| 亚洲一区二区在线播放| 国产精品天天看| 欧美一区二区精品久久911| 久久成人一区| 精品动漫3d一区二区三区免费版 | 亚洲综合第一| 国产精品久久久一区二区| 午夜电影亚洲| 久久久久一本一区二区青青蜜月| 悠悠资源网久久精品| 欧美高清视频一二三区| 日韩视频中文字幕| 午夜视频久久久| 伊人色综合久久天天| 美女主播精品视频一二三四| 亚洲国产精品福利| 亚洲自拍偷拍网址| 国外视频精品毛片| 欧美成人一区二区三区| 亚洲毛片在线观看| 欧美一区二粉嫩精品国产一线天| 国产综合香蕉五月婷在线| 女女同性女同一区二区三区91| 亚洲乱码视频| 久久国产精品99国产精| 亚洲精品在线一区二区| 国产精品久久久久久五月尺| 久久免费视频一区| 中日韩高清电影网| 久久午夜国产精品| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 久久九九国产精品| 亚洲看片免费| 国产日韩精品电影| 欧美成人一区在线| 午夜激情一区| 日韩西西人体444www| 欧美不卡视频一区| 久久久久久一区二区| 宅男在线国产精品| 亚洲图片在线观看| 国产精品激情电影| 亚洲与欧洲av电影| 久久精品一本| 亚洲欧洲一区二区天堂久久| 欧美暴力喷水在线| 在线中文字幕一区| 麻豆精品视频在线观看视频| 亚洲欧洲精品天堂一级 | 一本色道久久综合亚洲精品小说| 久久一区精品| 亚洲欧美日韩国产另类专区| 久久精品免费播放| 亚洲精品久久久一区二区三区|