亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++中關(guān)鍵字Struct和Class的區(qū)別

2020-05-23 14:21:19
字體:
供稿:網(wǎng)友
這篇文章主要介紹了C++中關(guān)鍵字Struct和Class的區(qū)別,本文用大量實例講解了Struct和Class的區(qū)別,需要的朋友可以參考下
 
 

Struct和Class的區(qū)別

今天這篇博文主要講解在C++中關(guān)鍵字struct和class的區(qū)別。這篇博文,將會系統(tǒng)的將這兩個關(guān)鍵字的不同面進行詳細的講解。

從語法上來講,class和struct做類型定義時只有兩點區(qū)別:

1.默認繼承權(quán)限,如果不指定,來自class的繼承按照private繼承處理,來自struct的繼承按照public繼承處理;

2.成員的默認訪問權(quán)限。class的成員默認是private權(quán)限,struct默認是public權(quán)限。以上兩點也是struct和class最基本的差別,也是最本質(zhì)的差別;

但是在C++中,struct進行了擴展,現(xiàn)在它已經(jīng)不僅僅是一個包含不同數(shù)據(jù)類型的數(shù)據(jù)結(jié)構(gòu)了,它包括了更多的功能。

Struct能包含成員函數(shù)嗎?

是的,答案是肯定的?,F(xiàn)在就讓我寫一段代碼驗證一下:

復(fù)制代碼代碼如下:

/*
** FileName     : StructAndClassDiffDemo
** Author       : Jelly Young
** Date         : 2013/12/7
** Description  : More information, please go to http://www.49028c.com
*/
 
#include <iostream>
using namespace std;
 
struct Test
{
    int a;
    int getA()
    {
        return a;
    }
 
    void setA(int temp)
    {
        a = temp;
    }
};
 
int main(int argc, char* argv[])
{
    Test testStruct;
    testStruct.setA(10);
    cout<<"Get the value from struct:"<<testStruct.getA()<<endl;
 
    Test *testStructPointer = new Test;
    testStructPointer->setA(20);
    cout<<"Get the value from struct again:"<<testStructPointer->getA()<<endl;
    delete testStructPointer;
 
    return 0;
}

 

以上的代碼會很正確的運行,是的;沒錯,struct能包含成員函數(shù)的。

Struct有自己的構(gòu)造函數(shù)嗎?

是的,可以的。看以下測試代碼:

 

復(fù)制代碼代碼如下:

/*
** FileName     : StructAndClassDiffDemo
** Author       : Jelly Young
** Date         : 2013/12/7
** Description  : More information, please go to http://www.49028c.com
*/
 
#include <iostream>
using namespace std;
 
struct Test
{
    int a;
 
    Test()
    {
        a = 100;
    }
 
    int getA()
    {
        return a;
    }
 
    void setA(int temp)
    {
        a = temp;
    }
};
 
int main(int argc, char* argv[])
{
    Test testStruct;
    testStruct.setA(10);
    cout<<"Get the value from struct:"<<testStruct.getA()<<endl;     
        Test *testStructPointer = new Test; 
    testStructPointer->setA(20);
    cout<<"Get the value from struct again:"<<testStruct.getA()<<endl;
    delete testStructPointer;
 
    // test the constructor
    Test testConstructor;
    cout<<"Set the value by the construct and get it:"<<testConstructor.getA()<<endl;
 
    return 0;
}

 

Struct可以有析構(gòu)函數(shù)么?

讓我來驗證一下:

 

復(fù)制代碼代碼如下:

/*
** FileName     : StructAndClassDiffDemo
** Author       : Jelly Young
** Date         : 2013/12/7
** Description  : More information, please go to http://www.49028c.com
*/
 
#include <iostream>
using namespace std;
 
struct Test
{
    int a;
 
    Test()
    {
        a = 100;
    }
 
    int getA()
    {
        return a;
    }
 
    void setA(int temp)
    {
        a = temp;
    }
 
    ~Test()
    {
        cout<<"Destructor function called."<<endl;
    }
};
 
int main(int argc, char* argv[])
{
    Test testStruct;
    testStruct.setA(10);
    cout<<"Get the value from struct:"<<testStruct.getA()<<endl;     
        Test *testStructPointer = new Test;     
        testStructPointer->setA(20);
    cout<<"Get the value from struct again:"<<testStruct.getA()<<endl;
    delete testStructPointer;
 
    // test the constructor
    Test testConstructor;
    cout<<"Set the value by the construct and get it:"<<testConstructor.getA()<<endl;
 
    return 0;
}

 

是的,完全支持析構(gòu)函數(shù)。

Struct支持繼承么?

再讓我寫代碼驗證一下:

復(fù)制代碼代碼如下:

/*
** FileName     : StructAndClassDiffDemo
** Author       : Jelly Young
** Date         : 2013/12/7
** Description  : More information, please go to http://www.49028c.com
*/
 
#include <iostream>
using namespace std;
 
struct A
{
    int a;
    A()
    {
        a = 10;
    }
    void print()
    {
        cout<<"I am from A"<<endl;
    }
};
 
struct B : A
{
    int b;
    B()
    {
        a = 30; // set a to 30
        b = 20;
    }
    /*void print()
    {
    cout<<"I am from B"<<endl;
    }*/
};
 
int main(int argc, char* argv[])
{
    B b1;
    cout<<b1.a<<endl;
    cout<<b1.b<<endl;
    b1.print();
 
    A a1;
    cout<<a1.a<<endl;
    a1.print();
 
    return 0;
}

 

運行上述代碼,struct支持繼承。

Struct支持多態(tài)么?

寫代碼測試一下便知:

 

復(fù)制代碼代碼如下:

/*
** FileName     : StructAndClassDiffDemo
** Author       : Jelly Young
** Date         : 2013/12/7
** Description  : More information, please go to http://www.49028c.com
*/
 
#include <iostream>
using namespace std;
 
struct A
{
    virtual void print() = 0;
};
 
struct B : A
{
    void print()
    {
        cout<<"I am from B"<<endl;
    }
};
 
struct C : A
{
    void print()
    {
        cout<<"I am from C"<<endl; 
    } 
}; 
 
int main(int argc, char* argv[]) 
{     
    A *a1;     
    B *b1 = new B;     
    C *c1 = new C;     
    a1 = b1;     
    a1->print(); // call B, not A
 
    a1 = c1;
    a1->print(); // call C, not A
 
    return 0;
}

 

Struct支持Private、Protected和Public關(guān)鍵字么?

 

復(fù)制代碼代碼如下:

/*
** FileName     : StructAndClassDiffDemo
** Author       : Jelly Young
** Date         : 2013/12/7
** Description  : More information, please go to http://www.49028c.com
*/
 
#include <iostream>
using namespace std;
 
struct A
{
private:
    int b;
 
protected:
    int c;
 
public:
    A()
    {
        b = 10;
        c = 20;
        d = 30;
    }
 
    int d;
};
 
struct B : A
{
    void printA_C()
    {
        cout<<A::c<<endl;
    };
 
    // private member can not see
    /*void printA_B()
    {
    cout<<A::b<<endl;
    }*/
 
    void printA_D()
    {
        cout<<A::d<<endl;
    }
};
 
int main(int argc, char* argv[])
{
 
    A a1;
    B b1;
 
    // private member can not see
    //cout<<a1.b<<endl;
 
    // protected member can not see
    //cout<<a1.c<<endl;
 
    // public member can see
    cout<<a1.d<<endl;
 
    return 0;
}

 

寫了這么多了,那么會出現(xiàn)這種一個狀況,如果是class的父類是struct關(guān)鍵字描述的,那么默認訪問屬性是什么?

當(dāng)出現(xiàn)這種情況時,到底默認是public繼承還是private繼承,取決于子類而不是基類。class可以繼承自struct修飾的類;同時,struct也可以繼承自class修飾的類,繼承屬性如下列描述:

 

復(fù)制代碼代碼如下:

class B:A{}; // private 繼承
 
class A{};
struct B:A{}; // public 繼承

 

最后,那么到底是使用struct,還是使用class呢?這個看個人喜好,但是這里有一個編程規(guī)范的問題,當(dāng)你覺得你要做的更像是一種數(shù)據(jù)結(jié)構(gòu)的話,那么用struct,如果你要做的更像是一種對象的話,那么用class。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
久久激情av| 亚洲综合在线中文字幕| 懂色av粉嫩av蜜臀av| 中文在线免费二区三区| 成人激情小说乱人伦| 99久久久无码国产精品免费| 亚洲欧美在线一区二区| 中文精品无码中文字幕无码专区| 国产黄色一级大片| 国产又粗又猛又爽又黄的| 国产a视频精品免费观看| 日韩人妻精品一区二区三区| 国产69久久精品成人看| 亚洲a∨一区二区三区| 毛片免费不卡| 亚洲第一区第二区第三区| 国产视色精品亚洲一区二区| 日本美女一区二区三区| 综合色中文字幕| 麻豆精品国产传媒| 色综合色综合色综合色综合色综合| 这里只有精品999| 亚洲r级在线观看| h1515四虎成人| 精品一区二区三区电影| 日韩偷拍一区二区| 污污的网站在线观看| ...xxx性欧美| 国产美女www爽爽爽视频| 国产又黄又猛又粗又爽的视频| 国产精品无码av无码| 亚洲调教一区| 2018av| 九义人在线观看完整免费版电视剧| 日韩欧美成人一区二区| 久草免费在线观看视频| 久久久免费人体| 中文字幕国产在线观看| 青青草在线播放| 欧美综合一区二区三区| 97se在线视频| 久久亚洲精选| 国产免费www| 亚洲va在线va天堂va偷拍| 三级网站视频在在线播放| 激情小说网站亚洲综合网| 欧美色片在线观看| 色综合久久久久久久久久久| 亚洲国产成人精品视频| 国内外成人激情视频| 欧美xxxxhdvideosex| 欧美hd在线| 中文字幕在线看| 国产乱子伦视频一区二区三区| 久久亚区不卡日本| 在线观看日韩国产| 亚洲清纯自拍| 美女激情福利视频在线观看| 狠狠88综合久久久久综合网| 四虎国产精品永久免费观看视频| 日韩免费小视频| 久久久综合视频| 在线看成人av电影| 亚洲一区二区激情| 国产精品三上| 无码毛片aaa在线| 看成年女人免费午夜视频| 2020日本不卡一区二区视频| 日韩欧美电影一区二区| 亚洲三级电影网站| 欧美一级大黄| 91热门视频在线观看| 日韩成人av毛片| 九九久久久久午夜精选| 老鸭窝av在线| 亚洲国产精品成人一区二区| 国产一区二区三区免费视频| 国模视频一区二区| 久久精品国产精品青草色艺| 国产美女视频一区二区二三区| 久久久精品在线| 九九热视频免费观看| 日本一区二区三区视频| 欧美性videos高清精品| 成人性生交视频免费观看| 欧美美女福利视频| 亚洲成人中文字幕在线| 欧美日韩国产综合视频在线观看| 久久黄色片网站| 香蕉成人app免费看片| 俺去亚洲欧洲欧美日韩| 亚洲黄色免费观看| 精品乱人伦小说| 欧美日韩激情在线观看| 久久6精品影院| 裸体一区二区三区| 懂色av中文字幕一区二区三区| 午夜精产品一区二区在线观看的| 伊人久久大香线蕉综合四虎小说| 依依成人在线视频| 视频一区视频二区视频三区视频四区国产| 亚州av一区| 一区二区三区在线看| 亚洲最大的成人av| 久久精品99无色码中文字幕| 欧美夫妻性生活视频| 色www精品视频在线观看| 女人18毛片一区二区三区| 亚洲国产精品国自产拍久久| 主播大秀视频在线观看一区二区| 欧美人妖在线观看| 亚欧洲乱码视频| 在线亚洲观看| 国产精品久久久一区| 日韩天堂av| 国产成都精品91一区二区三| 伊人久久青青草| 男女h黄动漫啪啪无遮挡软件| 欧美大胆视频| 久久久久www| 成人av电影免费| 天堂中文资源在线观看| 免费看av的网址| 最新国产在线观看| 亚洲综合一二三| 久久要要av| 国产在线一区二| 91成人影院| 深夜精品寂寞黄网站在线观看| 懂色av中文一区二区三区天美| 婷婷五月色综合| 黄色福利在线观看| 欧美精品国产白浆久久久久| 女~淫辱の触手3d动漫| 日韩亚洲欧美中文三级| 韩日欧美一区| 一级特级黄色片| 波多野结衣在线一区| 亚洲午夜久久久| 六月婷婷久久| 亚洲伦理在线观看| 国产aⅴ精品一区二区四区| 国产资源一区| 宅男噜噜噜66国产精品免费| 992tv国产精品成人影院| 亚洲18在线看污www麻豆| 日韩精品中文字| 丝袜美女在线观看| 天堂综合在线播放| 日本老妇乱子| 黄瓜视频污在线观看| 欧美成人高清| 国产精品久久久久一区二区国产| 老司机午夜免费精品视频| aa成人免费视频| 中文字幕不卡免费视频| 精品人妻一区二区免费视频| 欧美做受xxxxxⅹ性视频| 无码人妻精品一区二区蜜桃色欲| av资源亚洲| swag国产精品一区二区| 91插插插影院| 欧美精品99久久久**| 波多野结衣在线观看一区二区三区| 激情文学综合插| 免费网站观看www在线观| 国产亚洲精品福利| 欧美在线日韩精品| 内射一区二区三区| 你懂的在线观看视频网站| 国产无限制自拍| 欧美激情日韩| 另类专区欧美制服同性| 国产aaa免费视频| 狠狠爱免费视频| 国产一区二区三区在线视频观看| 精品日产乱码久久久久久仙踪林| 91九色国产在线播放| www.丝袜精品| 久久香蕉综合色一综合色88| 国产综合欧美在线看| 欧美激情中文不卡| 亚洲国产午夜伦理片大全在线观看网站| 久久久久久久久丰满| 久久精品香蕉视频| 日本少妇高潮喷水视频| 一区二区三区四区蜜桃| 97se亚洲国产综合在线| 亚洲三级 欧美三级| 欧美激情中文不卡| 美女18一级毛片一品久道久久综合| 亚洲综合天堂网| 日韩欧美三级在线观看| 欧美三日本三级三级在线播放| 国产在线精品一区二区三区不卡| 一级片免费观看视频| 免费网站在线观看黄| 亚洲综合网av| aaaaa级片| 欧美日韩一二三区| 成人av网站在线播放| 国产精品每日更新在线播放网址| 欧美日一区二区三区在线观看国产免| 一区二区三区国产豹纹内裤在线| 蜜桃av噜噜一区二区三区小说| xvideos.蜜桃一区二区| 91在线观看欧美日韩| 成人h视频在线观看播放| 狠狠爱成人网| 欧美性活一级视频| 另类天堂视频在线观看| 日本乱理伦在线| 真实国产乱子伦对白视频| 亚洲精品免费在线观看| www.麻豆av.com| 一区二区三区视频在线观看免费| 中文字幕一区二区三区不卡| 92国产精品久久久久首页| av黄色在线网站| 99久热这里只有精品视频免费观看| 视频午夜在线| 欧美日韩一区二区在线| 国产伦精品一区二区三区四区免费| 成a人片国产精品| 午夜精品一区二区三区国产| 97超碰资源站| 中文字幕二三区不卡| 国产5g影院天天爽天天看| 亚洲精品国产久| 免费观看欧美大片| 中文字幕一区二区三区电影| 免费成人在线观看av| 久久久久久国产精品美女| 日韩精品在线看片z| 欧美成人精品一区二区男人看| 九九精品视频免费| 国产精彩精品视频| 久久久噜噜噜久噜久久| 五月婷婷六月丁香综合| 久久久无码精品亚洲国产| 最新av在线| 亚洲色图自拍| 日本一区二区三区视频视频| av电影在线观看一区| 4438亚洲最大| 亚洲欧美成aⅴ人在线观看| 草莓福利社区在线| 国产无遮挡又黄又爽免费网站| 国产精品色眯眯| 国产深喉视频一区二区| 国产精品揄拍500视频| 女~淫辱の触手3d动漫| 久久免费影院| 国内自拍视频在线播放| 欧美日韩一级二级三级| 久久久久久国产精品免费免费| 黄色成人一级片| 这里只有精品视频| 国产盗摄xxxx视频xxx69| 亚洲永久精品免费| 天天色天天操天天做| 777片理伦片在线观看| 久久夜色精品国产欧美乱极品| 日韩大尺度在线观看| 亚洲最大av| 哺乳一区二区三区中文视频| 视频一区二区三区不卡| 91麻豆国产自产在线观看亚洲| 国产成年人视频网站| 先锋影音成人资源| 国产超级av| 热re66久久精品国产99热| 久久草视频在线| 一插菊花综合| 欧美综合久久久| 国产91av在线播放| 欧美日韩第一区日日骚| 欧美日韩精品免费观看视完整| 欧美色图校园春色| 亚洲自偷自拍熟女另类| 欧美一区二区三区网站| 欧美精品成人91久久久久久久| 欧美亚洲免费在线一区| 国产老肥熟一区二区三区| 91福利免费| 国产一级揄自揄精品视频| 天天碰免费视频| 国产视频丨精品|在线观看| 99久热在线精品视频观看| 特大黑人巨人吊xxxx| 欧美激情一二区| 成人图片小说| 精品国产成人av在线免| 亚洲成人av一区二区| 亚洲乱码在线观看| 蜜桃视频第一区免费观看| 久久久国产欧美| 狠狠爱www人成狠狠爱综合网| 国产成人午夜电影| av中文字幕在线观看| 欧美另类极品| 欧美日韩视频专区在线播放| 桃花岛成人影院| 亚洲国产成人tv| 可以在线看的av| 黄色在线播放| 羞羞的视频在线观看| 国产精品a久久久久| 久草网站在线| 亚洲一区久久久| 国产亚洲一级高清| 国产欧美一区二区精品婷婷| 国产精品精品软件视频| 国内露脸中年夫妇交换精品| 亚洲一区二区三区网站| 国内外成人激情免费视频| 国产经典久久久| 亚洲不卡在线观看| 朝桐光一区二区| 女女同性女同一区二区三区91| 亚洲精品综合网| 五月天激情综合网| 俄罗斯黄色录像| 日韩女同一区二区三区| 成人性生交xxxxx网站| 在线女人免费视频| 久久日免费视频| free性亚洲|