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

hellohuan

  C++博客 :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
  2 Posts :: 3 Stories :: 0 Comments :: 0 Trackbacks

常用鏈接

留言簿(1)

我參與的團(tuán)隊(duì)

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

 

Fucking in c++第十三章筆記

 

1、組合就是由類成員(或稱成員類)組成新類

2、繼承實(shí)際上也是由基類做子成組成新類,但語法上有不同,體現(xiàn)了OOP的思想

基類在繼承類中默認(rèn)是私有的,以Y:public X形式繼承則變?yōu)楣小?/span>

從繼承類的外部調(diào)用基類的任何成員都要加上基類名,如Y y; y.X::f( ); 而對(duì)于成員類則要加上對(duì)象名y.x.f( );

3   由于C++強(qiáng)制初始化,因此基類和成員類都必須在新類的構(gòu)造函數(shù)初始化列表中初始化

初始化語法:對(duì)于基類,使用類名調(diào)用構(gòu)造函數(shù);對(duì)于成員類,使用對(duì)象名調(diào)用構(gòu)造函數(shù),如Y::Y(int i):X(i), x(i) {}

4    繼承類默認(rèn)繼承了基類的成員函數(shù),即,在不重定義的前提下,y.f( )y.X::f( )調(diào)用的同一個(gè)函數(shù)

而組合類則必須通過成員類對(duì)象進(jìn)行函數(shù)調(diào)用

繼承類和組合類的構(gòu)/析造函數(shù)調(diào)用次序相反,前者從基類到子類

5   如果重定義了基類的函數(shù),則基類的同名函數(shù)全部自動(dòng)隱藏。

所謂“全部”是因?yàn)椋赡茉诨愔杏卸鄠€(gè)同名的重載函數(shù),它們?nèi)侩[藏

所謂“隱藏”不是說不能調(diào)用,而是說,當(dāng)調(diào)用y.f( )時(shí)調(diào)用的是Y中定義的新f( ),想調(diào)用基類的f則要顯式說明y.X::f( )

6   所有構(gòu)造函數(shù)、析構(gòu)函數(shù)、operator=都不能自動(dòng)繼承

但編譯器會(huì)自動(dòng)生成默認(rèn)構(gòu)造函數(shù)、拷貝構(gòu)造函數(shù)、operator=,并正確地調(diào)用基類的相應(yīng)函數(shù),它們工作的很好

自動(dòng)類型轉(zhuǎn)換函數(shù)會(huì)自動(dòng)繼承

    如果想讓編譯器自動(dòng)創(chuàng)建子類的默認(rèn)構(gòu)造函數(shù),我們就不能為子類定義任何(包括拷貝)構(gòu)造函數(shù)。這和普通類的規(guī)則是一樣的

但是如果不為子類定義任何構(gòu)造函數(shù),則只能使用自動(dòng)生成的默認(rèn)和拷貝構(gòu)造函數(shù)

因此,如果想為子類定義帶參數(shù)的構(gòu)造函數(shù),則必須同時(shí)也定義子類的默認(rèn)構(gòu)造函數(shù)

如果自定義了拷貝構(gòu)造函數(shù),則也必須同時(shí)自定義默認(rèn)構(gòu)造函數(shù)

在子類的默認(rèn)構(gòu)造函數(shù)中,如果想調(diào)用基類的默認(rèn)構(gòu)造函數(shù),無需顯式調(diào)用

在子類的拷貝構(gòu)造函數(shù)中,如果想調(diào)用基類的拷貝構(gòu)造函數(shù),必須顯式在初始化列表調(diào)用,否則自動(dòng)調(diào)用默認(rèn)構(gòu)造函數(shù)

在子類的operator=中,如果想調(diào)用基類的operator=必須顯式在函數(shù)體中調(diào)用,否則編譯器什么也不做

8   靜態(tài)成員函數(shù)的繼承規(guī)則和非靜態(tài)成員函數(shù)一樣,只是static成員函數(shù)不能是virtual

9    所以最好的方案是:

如果不定義帶參數(shù)的構(gòu)造函數(shù),就什么都不要?jiǎng)樱幾g器自動(dòng)生成符合要求的默認(rèn)/拷貝構(gòu)造、析構(gòu)、operator=

如果必須定義帶參構(gòu)造函數(shù),就要同時(shí)定義默認(rèn)構(gòu)造函數(shù),但定義時(shí)無需顯式調(diào)用基類默認(rèn)構(gòu)造函數(shù)

沒事就不要自定義拷貝構(gòu)造函數(shù)和operator=,如果一定要重定義,必須顯式調(diào)用基類的拷貝構(gòu)造函數(shù)和operator=

10   可以看到,組合類和繼承類的編譯器實(shí)現(xiàn)是一樣的

到目前為止,兩者區(qū)別在于繼承類繼承了基類的函數(shù)接口,繼承是is-a關(guān)系,組合是has-a關(guān)系

C++默認(rèn)是私有繼承,即此時(shí)并不能直接通過子類對(duì)象調(diào)用基類函數(shù)(即y.X::f()),而要在Y內(nèi)用using X::f;

11   protected的意義是僅自己和子類可以訪問自己的成員,外部不可訪問

private-protected-public的關(guān)系很像linux中文件權(quán)限的owner-group-others的關(guān)系

也可以protected繼承,但通常沒有應(yīng)用實(shí)例,它的存在只為語言的完備性 

12 operator=之外的所有基類運(yùn)算符都會(huì)自動(dòng)繼承,但它們操作的都是子類中“基類的成員”

,即,如果XY都有int成員i,則Y y;++y;加的是X中的i,而不是y中的i;同理operator==的意義也不會(huì)檢測(cè)y中的i

13   C++支持多重繼承,但作者認(rèn)為多重繼承總可以轉(zhuǎn)化為單重繼承,并且多重繼承很難掌握,因此不建議使用。

14   繼承和組合的優(yōu)點(diǎn)之一是支持漸進(jìn)式開發(fā)。程序員應(yīng)當(dāng)更多關(guān)心處理數(shù)據(jù)關(guān)系,而不是進(jìn)行具體的位操作

15   子類可以自動(dòng)向上類型轉(zhuǎn)換為基類,這對(duì)于類本身、類指針、類引用都有效

在編譯器自動(dòng)生成的子類拷貝構(gòu)造函數(shù)中,首先執(zhí)行基類拷貝構(gòu)造函數(shù),之后按聲明順序執(zhí)行成員類拷貝構(gòu)造函數(shù)

多重繼承可以通過組合類的形式代替

指針和引用被自動(dòng)向上類型轉(zhuǎn)換之后,子類的成員會(huì)不能訪問,這將通過下一章的virtual函數(shù)解決

////////////////////////////////////////

#include <iostream>
using namespace std;

class A {
    
int i;
public:
    A( 
int I ) { i = I; 
    cout
<<"a is fucking"<<endl;}

    
~A() {cout<<"a is not fucking"<<endl;}
    
void f() const {}
}
;
class B {
    
int i;
public:
    B( 
int I ) { i = I;cout<<"b is fucking"<<endl; }
    
~B() {cout<<"b is not fucking"<<endl;}
    
void f() const {}
}
;
class C : public B {
    A a;
public:
    C( 
int I ) :  a( I ),B( I ) {cout<<"c is fucking"<<endl;}//調(diào)用了基類的構(gòu)造函數(shù)和成員對(duì)象的構(gòu)造函數(shù)
    ~C() {cout<<"c is not fucking"<<endl;}//調(diào)用~A與~B
    void f() const {//重定義了所繼承的B::f(),并且還調(diào)用基類的版本。(只能在繼承期間重定義函數(shù))
        a.f();//通過成員對(duì)象,只能操作這個(gè)對(duì)象的公共接口,而不能重定義它
        B::f();//
    }

}
;


int main()
{
    C c(
3);
    
return 0;
}
結(jié)果:
b is fucking
a is fucking
c is fucking
c is not fucking
a is not fucking
b is not fucking

先初始化基類,隨后構(gòu)造組合類,之后才是子類,析構(gòu)順序正好相反,恰好回答了上次做錯(cuò)的筆試題
posted on 2008-07-29 22:10 炮灰九段 閱讀(169) 評(píng)論(0)  編輯 收藏 引用

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(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>
            日韩午夜黄色| av不卡免费看| 久久综合狠狠| 久久国产精品一区二区| 久久精品视频网| 久久九九精品99国产精品| 久久久久国产精品www| 久久久蜜桃一区二区人| 噜噜噜噜噜久久久久久91 | 久久久久综合一区二区三区| 久久久久亚洲综合| 欧美激情精品久久久久久久变态| 亚洲欧洲另类| 亚洲免费精彩视频| 亚洲欧美激情在线视频| 久久久久九九九九| 亚洲成在线观看| 一区二区三区久久网| 日韩一级精品视频在线观看| 性色av香蕉一区二区| 久久久视频精品| 亚洲精品影视| 久久国产精品亚洲77777| 欧美激情自拍| 国语对白精品一区二区| 一本色道久久综合狠狠躁篇的优点 | 久久精品成人欧美大片古装| 欧美成人一区二免费视频软件| 国产精品vvv| 在线欧美福利| 久久精品欧美日韩| 一区二区三区回区在观看免费视频| 久久九九久久九九| 国产精品一区二区三区免费观看| 91久久精品国产91久久性色| 欧美在线国产| 日韩视频免费在线| 免费在线播放第一区高清av| 国产乱码精品一区二区三区av| 亚洲美女中出| 欧美成人中文字幕在线| 性欧美18~19sex高清播放| 欧美日韩精品一区二区三区四区 | 欧美久久久久| 在线欧美日韩精品| 久久天天躁夜夜躁狠狠躁2022| 亚洲性感激情| 欧美三级中文字幕在线观看| 亚洲精品四区| 欧美激情精品久久久六区热门 | 牛夜精品久久久久久久99黑人| 国产一区二区三区四区hd| 亚洲欧美中文日韩在线| 99精品福利视频| 欧美日韩国产色视频| 夜夜夜久久久| 91久久视频| 欧美日韩成人一区二区三区| 99精品国产热久久91蜜凸| 亚洲国产精品99久久久久久久久| 久久一二三四| 亚洲日本va午夜在线影院| 乱中年女人伦av一区二区| 久久久久久网站| 亚洲高清不卡在线观看| 欧美成人综合网站| 欧美激情精品| 亚洲影院免费观看| 亚洲欧美日韩国产精品| 国产亚洲欧美色| 久久一区亚洲| 亚洲小少妇裸体bbw| 久久亚洲影院| 久久精品在线视频| 亚洲高清资源综合久久精品| 欧美成人精品在线播放| 欧美激情成人在线| 亚洲婷婷综合久久一本伊一区| 在线视频中文亚洲| 国产真实精品久久二三区| 久久中文久久字幕| 免费在线国产精品| 亚洲一区二区三区中文字幕在线 | 亚洲愉拍自拍另类高清精品| 一区二区三区四区国产精品| 国产精品美女久久久| 久久久午夜电影| 欧美激情一区二区三区成人| 亚洲欧美激情视频在线观看一区二区三区| 午夜免费在线观看精品视频| 亚洲国产另类精品专区| 亚洲伦理久久| 国产一区二区三区四区| 亚洲人在线视频| 国产区日韩欧美| 亚洲激情网站免费观看| 国产欧美精品在线播放| 欧美二区在线| 国产麻豆日韩欧美久久| 亚洲精品国产日韩| 国产亚洲欧洲| 在线亚洲美日韩| 亚洲精品在线视频观看| 欧美一区三区三区高中清蜜桃 | 老司机免费视频一区二区| 欧美日韩a区| 欧美成人有码| 国产一区二区三区精品欧美日韩一区二区三区| 亚洲国产精品成人精品| 国模一区二区三区| 亚洲小说欧美另类社区| 日韩视频在线一区二区三区| 久久成人精品一区二区三区| 亚洲一级高清| 欧美日本精品在线| 欧美高清不卡| 国产综合久久久久久| 亚洲网在线观看| 99精品免费视频| 欧美va天堂| 欧美激情精品久久久久久大尺度 | 伊人久久大香线| 亚洲欧美成人一区二区在线电影| 日韩视频免费在线| 久久影音先锋| 免费在线播放第一区高清av| 国产一区91精品张津瑜| 亚洲在线免费| 国产精品美女999| 午夜亚洲影视| 国产精品拍天天在线| 日韩一级精品视频在线观看| 亚洲精品视频免费观看| 葵司免费一区二区三区四区五区| 久久婷婷人人澡人人喊人人爽| 国产在线观看精品一区二区三区| 性欧美xxxx大乳国产app| 欧美在线观看视频| 国产亚洲亚洲| 久久精品国产999大香线蕉| 久久国产精品久久国产精品 | 国产精品美女xx| 在线亚洲自拍| 欧美一区成人| 国产一区欧美日韩| 久久免费视频在线| 亚洲国产日本| 在线视频欧美一区| 国产精品人人爽人人做我的可爱 | 久久久久9999亚洲精品| 久久蜜桃精品| 亚洲人成小说网站色在线| 欧美国产精品久久| 99视频+国产日韩欧美| 亚洲欧美日韩精品久久| 国产日韩欧美夫妻视频在线观看| 亚洲综合激情| 免费日本视频一区| 一区二区三区免费观看| 国产精品视屏| 久久在线免费视频| 一区二区三区**美女毛片 | 久久久久久久久久久久久久一区| 伊人久久大香线| 欧美日韩精品一区视频| 亚洲综合国产激情另类一区| 免费观看亚洲视频大全| 99国产精品久久久| 国产日韩av一区二区| 欧美二区在线播放| 亚洲欧美精品suv| 亚洲国产精品电影在线观看| 亚洲在线观看视频| 亚洲二区在线视频| 国产精品久久久久9999高清| 久久亚洲影院| 亚洲欧美日韩综合国产aⅴ| 91久久精品www人人做人人爽| 午夜精品一区二区三区电影天堂| 伊人久久大香线蕉av超碰演员| 欧美日韩免费看| 久久久av毛片精品| 亚洲少妇最新在线视频| 欧美国产第一页| 久久成人18免费网站| 一区二区三区免费看| 在线免费一区三区| 国产亚洲精品久久飘花| 欧美丝袜一区二区| 免费高清在线视频一区·| 午夜精品久久久久久久白皮肤| 亚洲精品视频一区二区三区| 美日韩精品视频| 在线精品福利| 久久人91精品久久久久久不卡| 在线午夜精品自拍| 亚洲区中文字幕| 亚洲第一在线视频| 免费91麻豆精品国产自产在线观看| 小黄鸭精品密入口导航|