• <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>
            posts - 297,  comments - 15,  trackbacks - 0

            C++-----虛擬函數的若干說明

            1 虛擬的輸入輸出

            1.       第一次引入虛擬函數的基類,必須在類聲明中指定virtual關鍵字。如果定義被放在類的外面則不用再次指定關鍵字virtual。

            2.       引入虛擬函數的類必須定義它,或者把它聲明為純虛擬函數。

            3.       為了使虛擬函數的派生類實例能夠改寫其基類的活動實例,它的原型必須與基類完全匹配。包括參數、返回值、const性等等。

            a)       但派生類實例的返回值,可以是基類實例返回類型的公有派生類類型。

            2 純虛擬函數

            C++語言為提供了一種語法結,構通過它可以指明一個虛擬函數,只是提供了一個可被子類型改寫的接口,但是它本身并不能通過虛擬機制被調用,這就是純虛擬函數。純虛擬函數的聲明如下所示:

            virtual 返回值 FunctionNmae(參數) = 0;

            包含或繼承一個或多個純虛擬函數的類被編譯器識別為抽象基類,試圖創建一個抽象基類的獨立類對象會導致編譯時刻錯誤。

            抽象基類只能作為子對象出現在后續的派生類中,不能聲明抽象基類的對象,但是可以聲明抽象類的指針。

            3 虛擬函數的靜態調用

            當用類域操作符調用虛擬函數時,我們改變了虛擬機制,使得虛擬函數在編譯時刻被靜態解析。改變虛擬機制常常是為了效率,在一個派生類虛擬函數中,有時需要調用基類的實例來完成”已經在基類和派生類實例之間被抽取出來“的操作。

            純虛擬函數可以通過虛擬機制被調用,也可以被靜態調用。

            4 虛擬函數和缺省實參

                如果一個虛函數在基類提供了一個缺省的參數值,而在派生類中提供了另外一個缺省的參數值,這時候的調用會出現問題,如果用的是基類的指針或者引用調用,則使用的是基類的缺省參數,否則才是派生類的缺省參數。這是因為缺省實參不是在運行時刻決定的,而是在編譯時刻根據被調用函數的對象的類型決定的。

                遇到這樣的問題可以通過把缺省實參作為用戶是夠提供實參的標志,而在內部用局部變量作為真正的參數。

            posted on 2009-03-27 10:37 chatler 閱讀(215) 評論(0)  編輯 收藏 引用 所屬分類: C++_BASIS
            <2010年9月>
            2930311234
            567891011
            12131415161718
            19202122232425
            262728293012
            3456789

            常用鏈接

            留言簿(10)

            隨筆分類(307)

            隨筆檔案(297)

            algorithm

            Books_Free_Online

            C++

            database

            Linux

            Linux shell

            linux socket

            misce

            • cloudward
            • 感覺這個博客還是不錯,雖然做的東西和我不大相關,覺得看看還是有好處的

            network

            OSS

            • Google Android
            • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
            • os161 file list

            overall

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            午夜欧美精品久久久久久久| 狠狠色综合网站久久久久久久| 亚洲人成无码网站久久99热国产| 国内精品久久久久久久涩爱| 亚洲国产精品无码久久青草| 色欲av伊人久久大香线蕉影院 | 2020最新久久久视精品爱| 93精91精品国产综合久久香蕉| 色天使久久综合网天天| 伊人久久精品无码二区麻豆| AV狠狠色丁香婷婷综合久久| 久久精品女人天堂AV麻| 99久久超碰中文字幕伊人| 人妻无码久久精品| 久久精品国产99久久久| 欧美性猛交xxxx免费看久久久| www性久久久com| 久久久无码精品亚洲日韩京东传媒| 狠狠色丁香久久婷婷综合五月| 人妻中文久久久久| 国产高潮国产高潮久久久91 | 狠狠色婷婷久久一区二区三区| 久久精品国产精品亚洲下载| 国产人久久人人人人爽| 精品久久久久久无码不卡| 国产精品99久久精品爆乳| 99久久99这里只有免费费精品| 久久精品一本到99热免费| 久久久久久亚洲精品不卡| 久久99精品国产| 国产精品久久久久久吹潮| 77777亚洲午夜久久多人| 亚洲伊人久久成综合人影院 | 亚州日韩精品专区久久久| 国产精品久久久久久久久久免费| 丁香五月网久久综合| 久久婷婷五月综合色奶水99啪| 亚洲国产美女精品久久久久∴| 欧美黑人激情性久久| 伊人久久大香线蕉av不卡| 中文字幕乱码人妻无码久久|