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

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

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

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

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;
    按照當時的想法,句子 SPREADSHEET[g_nNumRows][g_nNumCols] sh 的意思應該是 CELL sh ,不就該是這樣的嗎(因為它只是個別名/馬甲)?但在我那個想法里 sh 可不是數組,所以我當時無法理解 sh 后來的行為。形式主義,對,形式主義影響了我,當時我就一徹底的形式主義者。我還想再一遍地重復這個詞,不過那也太給它面子了。算了, 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 結構。當向 Derive 對象使用 [] 時(它是 SPREADSHEET& 型),它的行為就跟數組一致了(n 成員不會索引到,這也是不允許派生類有數據成員的原因)。關于它的內存并沒有在它聲明的時候開辟,以及后來怎么開辟,那就是另一個冒險故事了。這種手法讓我再一次為《核》這本書所折服。
    好了,回到 typedef 。我見得最多的用法不外乎 typedef int value_type ,“取綽號”是他的職責所在,我不能只把它理解為:當你看到 B( value_type ) 時,它只不過是 A ( int ),還要把它理解為像上面提到的一樣:SPREADSHEET 并不只是一個 CELL ,而是多個 CELL 組成的 Array 的首個元素的位置指針,不然后面的兩個跟屁蟲雙胞胎 “[][]” 作何解釋。我的這種想法讓我想起了 ATL 中的 OLECHAR ,在那里我也曾是個形式主義者(又重復了一遍!)。OLECHAR 在特定的平臺上有特定的意義,比如在 windows 平臺并定義了 UNICODE 的情況下,它是 wchar_t 。如果保持這種理解,將無法把它當做一種特別的類型,從而在語言層面上有了障礙,也就違背了 OLECHAR 生來是為 COM 組件做“特殊”服務的本意。我們要把它當做基本類型看待,至于怎么看待以及詳細的方法,另一個冒險故事…… 所以,“取綽號”專家的內涵并不單薄,我不能一廂情愿的認為他只是個愛捉弄人的討厭鬼,它正經起來可也是一表人才滴。下面是一些 typedef 的用法(來自《c++模板元編程》中某習題的解答):
class foo {...};

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

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   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免费在线观看| 欧美激情一区二区三区| 亚洲一二三级电影| 国产视频一区在线观看| 欧美国产视频一区二区| 亚洲一区在线观看免费观看电影高清 | 亚洲已满18点击进入久久 | 国产精品影音先锋| 欧美国产成人精品| 久久久久久综合| 亚洲一区欧美激情| 亚洲人成在线观看一区二区| 久久视频一区| 久久国产精品99久久久久久老狼| 亚洲第一精品福利| 国产欧美综合一区二区三区| 欧美日韩99| 欧美国产免费| 欧美精品一区二区高清在线观看| 你懂的视频欧美| 久久久精品一品道一区| 久久国产免费| 久久在线视频| 欧美电影资源| 欧美精品国产一区| 欧美日韩一区二区三区在线看| 蜜桃av噜噜一区二区三区| 麻豆精品91| 欧美激情一区二区三区| 欧美日韩1区| 国产日产亚洲精品| 永久久久久久| 亚洲伦理中文字幕| 香蕉精品999视频一区二区| 亚洲欧美综合v| 久久综合伊人| 99热这里只有成人精品国产| 亚洲一区二区视频在线观看| 久久久久国色av免费观看性色| 久久伊人亚洲| 国产精品国产三级国产aⅴ无密码| 国产精品久久久免费| 伊人一区二区三区久久精品| 亚洲视频一区在线| 欧美日韩国产另类不卡| 狠狠色2019综合网| 亚洲专区欧美专区| 亚洲高清在线| 亚洲欧美在线一区二区| 欧美国产在线视频| 国产自产精品| 欧美在线免费播放| 日韩午夜高潮| 欧美精品日韩一区| 亚洲激情欧美| 美女999久久久精品视频| 亚洲新中文字幕| 欧美伦理91i| 亚洲伦理中文字幕| 亚洲黄色免费| 欧美女同在线视频| 99国产欧美久久久精品| 欧美高清在线观看| 美女精品国产| 亚洲欧洲日韩综合二区| 欧美成人激情视频免费观看| 久久免费视频在线观看| 最新日韩欧美| 日韩一级片网址| 欧美视频在线播放| 欧美呦呦网站| 久久永久免费| 一本色道久久综合亚洲二区三区| 亚洲人体1000| 国产精品一级二级三级| 久久久精品一区| 模特精品在线| 亚洲欧美日韩网| 欧美一级午夜免费电影| 亚洲激情第一区| 亚洲一本视频| 亚洲福利在线看| 亚洲最黄网站| 亚洲高清一二三区| 亚洲线精品一区二区三区八戒| 国产一区二区三区的电影| 欧美国产一区二区| 国产精品日韩在线观看| 毛片av中文字幕一区二区| 欧美日韩国产精品一卡| 久久综合成人精品亚洲另类欧美| 欧美高清免费| 六月婷婷一区| 国产一区二区三区久久悠悠色av | 国产乱码精品一区二区三区忘忧草 | 国产精品高潮粉嫩av| 欧美激情一区二区久久久| 国产精品爽黄69| 亚洲天堂成人在线观看| 一区二区三区产品免费精品久久75| 狠狠色丁香久久综合频道| 亚洲综合日韩| 亚洲神马久久| 欧美午夜一区| 在线视频欧美日韩精品| 一区二区三区.www| 欧美肉体xxxx裸体137大胆| 亚洲最黄网站| 亚洲欧美视频一区二区三区| 欧美视频一区二区在线观看| 亚洲国产欧美日韩精品| 99在线精品视频| 欧美激情一区二区久久久| 亚洲人成网站色ww在线| 一本色道久久综合亚洲精品高清| 蜜臀av性久久久久蜜臀aⅴ| 亚洲伦理在线| 久久国产日韩| 亚洲区国产区| 欧美性视频网站| 久久九九热免费视频| 欧美激情自拍| 先锋a资源在线看亚洲| 激情懂色av一区av二区av| 欧美大尺度在线观看| 亚洲女性裸体视频| 亚洲激情国产精品| 欧美影院成人| 一本一本a久久| 激情视频一区二区三区| 欧美日韩综合一区| 久久影院午夜片一区| 先锋影音一区二区三区| 亚洲国产成人tv| 久久精品亚洲乱码伦伦中文| 亚洲美女视频| 亚洲第一精品影视| 国产欧美一区二区视频| 欧美日韩精品三区| 欧美极品色图| 欧美日韩国产综合久久| 欧美gay视频激情| 欧美成人免费小视频| 久久九九免费视频| 久久人91精品久久久久久不卡| 亚洲中字在线| 亚洲免费影院| 亚洲综合日韩在线| 欧美综合77777色婷婷| 亚洲欧美在线播放| 欧美在线观看一二区| 午夜精品美女久久久久av福利| 亚洲免费小视频| 欧美一区二区三区四区视频| 亚洲欧美日韩在线播放| 久久国产视频网站| 蜜臀av性久久久久蜜臀aⅴ四虎| 狂野欧美性猛交xxxx巴西| 欧美v日韩v国产v| 欧美午夜在线观看| 国产精品日韩欧美一区二区| 国产亚洲高清视频| 亚洲国产精品成人精品| 亚洲性视频网址| 久久久精品tv| 亚洲国产精品ⅴa在线观看| 中文国产一区| 欧美成人r级一区二区三区| 国产精品国产三级国产专播品爱网 | 欧美激情四色 | 在线亚洲观看| 久久一综合视频| 国产精品丝袜91| 91久久精品日日躁夜夜躁欧美| 99精品视频免费在线观看| 午夜亚洲视频| 亚洲国产精品久久人人爱蜜臀| 亚洲无限乱码一二三四麻| 久久精品夜色噜噜亚洲a∨| 欧美午夜精品理论片a级大开眼界| 国外成人在线视频| 亚洲欧美日韩在线一区| 亚洲国产老妈| 免费h精品视频在线播放| 国产女人aaa级久久久级| 在线视频欧美日韩精品| 亚洲国产一区二区三区在线播| 久久久久久97三级| 亚洲福利专区| 欧美福利影院| 欧美精品三级日韩久久| 亚洲精品美女在线| 亚洲日本电影在线| 欧美国产欧美亚洲国产日韩mv天天看完整 | 国产女主播一区| 久久久久国产精品一区三寸| 午夜精品久久久久久久久久久| 欧美午夜在线观看| 久久av一区二区三区漫画|