• <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>
            C++分析研究  
            C++
            日歷
            <2025年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456
            統計
            • 隨筆 - 92
            • 文章 - 4
            • 評論 - 4
            • 引用 - 0

            導航

            常用鏈接

            留言簿

            隨筆檔案

            文章檔案

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

             

              我們來談一下重載C++標準庫函數時候會發生什么樣的問題呢?接下來會通過重載MFC的MessageBox讓你知道不一樣的MFC。

              一、messagebox的原始調用方法

              我們隨便新建一個MFC的對話框工程,先給出兩種messagebox的調用方法,如下所示:

              void CMy200Dlg::OnBnClickedButton1()

              {

              //1. 調用CMy200Dlg類基類CWnd的方法MessageBox

              MessageBox(_T("CWnd's method!"),_T("123!"),0);

              //2. 調用windows API的MessageBox function

              ::MessageBox(NULL,_T("API funtion!"),NULL,0);

              }

              二、CMy200Dlg類中對messagebox方法的重載

              下面來改造MessageBox這個函數,第1種是在CMy200Dlg這個類中重載

              //d:\My Documents\Visual Studio 2005\Projects\200\200\200Dlg.h

              class CMy200Dlg : public CDialog

              {

              public:

              int MessageBox();

              };

              //d:\My Documents\Visual Studio 2005\Projects\200\200\200Dlg.cpp

              int CMy200Dlg::MessageBox()

              {

              int a=0,b=1;

              return a+b;

              }

              void CMy200Dlg::OnBnClickedButton1()

              {

              //方法1. 調用CMy200Dlg類基類CWnd的方法MessageBox

              CWnd::MessageBox(_T("CWnd's method!"),_T("123!"),0);

              //方法2. 調用windows API的MessageBox function

              ::MessageBox(NULL,_T("API funtion!"),NULL,0);

              //方法3. 調用重載的MessageBox()

              MessageBox();

              }

              為什么1.中的MessageBox必須加上CWnd::限定符,因為在CMy200Dlg中重載了MessageBox后會對基類的函數進行覆蓋,這個是必須要引起注意的。

              三、全局中對messagebox方法的重載

              下面繼續來重載MessageBox這個函數,第2種是在全局中進行重載

              int CMy200Dlg::MessageBox()

              {

              int a=0,b=1;

              return a+b;

              }

              int MessageBox(int aa,int bb)

              {

              return aa*bb;

              }

              void CMy200Dlg::OnBnClickedButton1()

              {

              //1. 調用CMy200Dlg類基類CWnd的方法MessageBox

              CWnd::MessageBox(_T("CWnd's method!"),_T("123!"),0);

              //2. 調用windows API的MessageBox function

              ::MessageBox(NULL,_T("API funtion!"),NULL,0);

              //3. 調用重載的MessageBox()

              MessageBox();

              //4. 調用重載的全局函數 MessageBox(int aa,int bb)

              ::MessageBox(20,14);

              }

              記住全局函數的調用加上::作用域符號就可以了。

              四、結論:

              一個知識點的靈活運用關鍵是勤動手,多調試,多去思考和總結。作為上一篇函數的重載就這樣講完了,但是子類對基類的覆蓋這個概念沒有展開來說,留給以后再去細說吧 www.yztrans.com  
             

            posted on 2014-01-22 14:55 HAOSOLA 閱讀(491) 評論(0)  編輯 收藏 引用
             
            Copyright © HAOSOLA Powered by: 博客園 模板提供:滬江博客
            PK10開獎 PK10開獎
            亚洲一级Av无码毛片久久精品| 精品乱码久久久久久久| 久久久WWW成人免费毛片| 一本大道久久香蕉成人网| 久久天天躁狠狠躁夜夜躁2O2O| 伊人久久大香线焦综合四虎| 久久综合鬼色88久久精品综合自在自线噜噜| 亚洲色婷婷综合久久| 99久久成人18免费网站| 久久综合色老色| 国产精品久久久天天影视香蕉 | 久久久婷婷五月亚洲97号色| 国产免费久久久久久无码| 久久久久久久人妻无码中文字幕爆| 久久精品成人免费观看97| 久久夜色精品国产噜噜噜亚洲AV| 久久不见久久见免费影院www日本| 一本色综合网久久| 久久综合精品国产一区二区三区| 少妇久久久久久久久久| 久久99热这里只频精品6| 国产成人AV综合久久| 99久久国产亚洲高清观看2024 | 久久亚洲私人国产精品vA| 久久综合色老色| 亚洲精品99久久久久中文字幕| 国产69精品久久久久99| 精品国际久久久久999波多野| 亚洲午夜久久久久久久久久| 亚洲精品无码久久久影院相关影片| 亚洲欧美日韩久久精品| 中文字幕无码久久久| 天天综合久久一二三区| 久久久久久a亚洲欧洲aⅴ| 久久天堂AV综合合色蜜桃网| 久久这里只有精品首页| 久久精品国产亚洲AV影院| 色偷偷88888欧美精品久久久 | 亚洲精品无码久久久久AV麻豆| 精品免费久久久久国产一区| 人妻丰满?V无码久久不卡|