• <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++-----虛擬函數(shù)的若干說明

            1 虛擬的輸入輸出

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

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

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

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

            2 純虛擬函數(shù)

            C++語言為提供了一種語法結(jié),構(gòu)通過它可以指明一個(gè)虛擬函數(shù),只是提供了一個(gè)可被子類型改寫的接口,但是它本身并不能通過虛擬機(jī)制被調(diào)用,這就是純虛擬函數(shù)。純虛擬函數(shù)的聲明如下所示:

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

            包含或繼承一個(gè)或多個(gè)純虛擬函數(shù)的類被編譯器識(shí)別為抽象基類,試圖創(chuàng)建一個(gè)抽象基類的獨(dú)立類對(duì)象會(huì)導(dǎo)致編譯時(shí)刻錯(cuò)誤。

            抽象基類只能作為子對(duì)象出現(xiàn)在后續(xù)的派生類中,不能聲明抽象基類的對(duì)象,但是可以聲明抽象類的指針。

            3 虛擬函數(shù)的靜態(tài)調(diào)用

            當(dāng)用類域操作符調(diào)用虛擬函數(shù)時(shí),我們改變了虛擬機(jī)制,使得虛擬函數(shù)在編譯時(shí)刻被靜態(tài)解析。改變虛擬機(jī)制常常是為了效率,在一個(gè)派生類虛擬函數(shù)中,有時(shí)需要調(diào)用基類的實(shí)例來完成”已經(jīng)在基類和派生類實(shí)例之間被抽取出來“的操作。

            純虛擬函數(shù)可以通過虛擬機(jī)制被調(diào)用,也可以被靜態(tài)調(diào)用。

            4 虛擬函數(shù)和缺省實(shí)參

                如果一個(gè)虛函數(shù)在基類提供了一個(gè)缺省的參數(shù)值,而在派生類中提供了另外一個(gè)缺省的參數(shù)值,這時(shí)候的調(diào)用會(huì)出現(xiàn)問題,如果用的是基類的指針或者引用調(diào)用,則使用的是基類的缺省參數(shù),否則才是派生類的缺省參數(shù)。這是因?yàn)槿笔?shí)參不是在運(yùn)行時(shí)刻決定的,而是在編譯時(shí)刻根據(jù)被調(diào)用函數(shù)的對(duì)象的類型決定的。

                遇到這樣的問題可以通過把缺省實(shí)參作為用戶是夠提供實(shí)參的標(biāo)志,而在內(nèi)部用局部變量作為真正的參數(shù)。

            posted on 2009-03-27 10:37 chatler 閱讀(215) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C++_BASIS
            <2011年5月>
            24252627282930
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            常用鏈接

            留言簿(10)

            隨筆分類(307)

            隨筆檔案(297)

            algorithm

            Books_Free_Online

            C++

            database

            Linux

            Linux shell

            linux socket

            misce

            • cloudward
            • 感覺這個(gè)博客還是不錯(cuò),雖然做的東西和我不大相關(guān),覺得看看還是有好處的

            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

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久天堂AV综合合色蜜桃网| 久久国产热精品波多野结衣AV| av国内精品久久久久影院| 国产欧美久久久精品影院| 久久久久久亚洲精品无码| 国产精品成人久久久久久久| 久久久久99精品成人片欧美| 久久精品中文闷骚内射| 中文字幕无码免费久久| 久久人妻无码中文字幕| 久久精品视频一| 久久精品综合网| 久久久久亚洲国产| 欧美亚洲国产精品久久| 久久国产三级无码一区二区| 久久性生大片免费观看性| 香蕉久久久久久狠狠色| 日韩人妻无码一区二区三区久久99| 亚洲欧美日韩久久精品| 久久久久久国产精品无码下载| 国产精品久久久久久久人人看| 7777精品伊人久久久大香线蕉| 国产精品99久久久精品无码| 日日躁夜夜躁狠狠久久AV| 久久久国产精品亚洲一区| 97久久超碰成人精品网站| 狠狠色伊人久久精品综合网| 久久亚洲色一区二区三区| 久久精品中文无码资源站| 久久久av波多野一区二区| 日本免费久久久久久久网站| 精品无码久久久久久久久久| 久久天天婷婷五月俺也去| 色综合久久久久综合体桃花网| 狠狠色丁香婷综合久久| 久久久久国产精品麻豆AR影院| 久久人人爽人人爽人人av东京热| 精品综合久久久久久888蜜芽| 久久国产精品偷99| 久久综合国产乱子伦精品免费| 99久久国产亚洲高清观看2024|