最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++關(guān)于類結(jié)構(gòu)體大小和構(gòu)造順序,析構(gòu)順序的測(cè)試詳解

 更新時(shí)間:2021年08月25日 11:04:27   作者:yunshouhu  
這篇文章主要介紹了C++類結(jié)構(gòu)體大小和構(gòu)造順序,析構(gòu)順序的測(cè)試,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
#include <iostream>
using namespace std;
/**
1. c++的類中成員若不加修飾符的話,默認(rèn)是private
2. 調(diào)用構(gòu)造函數(shù)時(shí),先遞歸調(diào)用最頂級(jí)的父類構(gòu)造函數(shù),再依次到子類的構(gòu)造函數(shù)。
3. 調(diào)用析構(gòu)函數(shù)時(shí)相反,先調(diào)用最底層的子類析構(gòu)函數(shù),再依次到父類的構(gòu)造函數(shù)。
4. 空類的sizeof(A)大小為1,多個(gè)空類繼承后的子類大小也是1
 */
class A{
public:
    A()
    {
        cout<<"A constructor"<<endl;
    }
    ~A()
    {
        cout<<"A destructor"<<endl;
    }
};
class B:A{
public:
    B()
    {
        cout<<"B constructor"<<endl;
    }
    ~B()
    {
        cout<<"B destructor"<<endl;
    }
};
class C:B{
public:
    C()
    {
        cout<<"C constructor"<<endl;
    }
    ~C()
    {
        cout<<"C destructor"<<endl;
    }
    virtual void eat()=0;//純虛函數(shù)會(huì)存在一個(gè)虛函數(shù)指針。64bit系統(tǒng)上故大小為8
};
class D:B{
    void eat()
    {
        cout<<"D eat"<<endl;
    }
};
class E:B{
    int age;//不加修飾符的話,默認(rèn)是private
public:
    int num;
    E(int a,int b):age(a),num(b){
        cout<<"E constructor"<<endl;
    };
    ~E()
    {
        cout<<"E destructor"<<endl;
    }
    void eat()
    {
        cout<<"E eat"<<endl;
    }
};
class F:C{
    //繼承的類中有虛函數(shù),存在一個(gè)虛函數(shù)指針,64bit系統(tǒng)上占8字節(jié)
    int age;//不加修飾符的話,默認(rèn)是private
public:
    int num;
    F(int a,int b):age(a),num(b){
        cout<<"F constructor"<<endl;
    };
    ~F()
    {
        cout<<"F destructor"<<endl;
    }
    void eat()
    {
        cout<<"F eat"<<endl;
    }
};

//C++關(guān)于類結(jié)構(gòu)體大小和構(gòu)造順序、析構(gòu)順序的測(cè)試。
int main()
{
    cout<<"run"<<endl;
    cout<<"sizeof(A)="<<sizeof(A)<<endl;//大小為1
    cout<<"sizeof(B)="<<sizeof(B)<<endl;//大小為1
    cout<<"sizeof(C)="<<sizeof(C)<<endl;//虛函數(shù)會(huì)存在一個(gè)虛函數(shù)指針。64bit系統(tǒng)上故大小為8
    cout<<"sizeof(D)="<<sizeof(D)<<endl;//大小為1,非虛函數(shù)不占用類大小。
    cout<<"sizeof(E)="<<sizeof(E)<<endl;//大小為4+4
    E e(11,22);
    cout<<"e.num="<<e.num<<endl;
    E* e2=new E(33,44);
    cout<<"e2->num="<<e2->num<<endl;
    delete e2;
    cout<<"sizeof(F)="<<sizeof(F)<<endl;//大小為8+4+4

    F f(55,66);
    cout<<"f.num="<<f.num<<endl;
    f.eat();
    return 0;
}

總結(jié)

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • C語言實(shí)現(xiàn)猜數(shù)字小游戲

    C語言實(shí)現(xiàn)猜數(shù)字小游戲

    這篇文章主要介紹了C語言實(shí)現(xiàn)猜數(shù)字小游戲,附有詳細(xì)代碼,需要的小伙伴可以參考一下,希望對(duì)你的遼西有所幫助
    2021-10-10
  • 簡(jiǎn)單講解c++ vector

    簡(jiǎn)單講解c++ vector

    這篇文章主要介紹了c++ vector的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)c++,感興趣的朋友可以了解下
    2020-09-09
  • 解析C/C++值傳遞和址傳遞的區(qū)別

    解析C/C++值傳遞和址傳遞的區(qū)別

    今天通過本文給大家介紹C/C++值傳遞和址傳遞的區(qū)別講解,本文通過實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2021-10-10
  • 使用C++ MFC編寫一個(gè)簡(jiǎn)單的五子棋游戲程序

    使用C++ MFC編寫一個(gè)簡(jiǎn)單的五子棋游戲程序

    這篇文章主要介紹了使用C++ MFC編寫一個(gè)簡(jiǎn)單的五子棋游戲程序,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-02-02
  • C語言:代碼宏詳解

    C語言:代碼宏詳解

    這篇文章主要介紹了 C語言宏定義使用實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-09-09
  • 一文帶你學(xué)習(xí)C++析構(gòu)函數(shù)

    一文帶你學(xué)習(xí)C++析構(gòu)函數(shù)

    在C++中,析構(gòu)函數(shù)是一種特殊類型的成員函數(shù),用于在對(duì)象生命周期結(jié)束時(shí)被自動(dòng)調(diào)用,本文我們將介紹C++析構(gòu)函數(shù)的一些重要知識(shí)點(diǎn),并提供相應(yīng)代碼示例,需要的朋友可以參考下
    2023-05-05
  • c++ 基于opencv 識(shí)別、定位二維碼

    c++ 基于opencv 識(shí)別、定位二維碼

    這篇文章主要介紹了c++ 基于opencv 識(shí)別、定位二維碼,幫助大家更好的理解和學(xué)習(xí)使用c++,感興趣的朋友可以了解下
    2021-03-03
  • C語言深入探究sizeof與整型數(shù)據(jù)存儲(chǔ)及數(shù)據(jù)類型取值范圍

    C語言深入探究sizeof與整型數(shù)據(jù)存儲(chǔ)及數(shù)據(jù)類型取值范圍

    在main函數(shù)中,sizeof是可以正常工作的,但是在自定義函數(shù)中就不可以了。所以本文將為大家詳細(xì)講解一下關(guān)鍵字sizeof、整型數(shù)據(jù)存儲(chǔ)深入、數(shù)據(jù)類型取值范圍深入
    2022-07-07
  • C++中string替換所有指定字符串的方法

    C++中string替換所有指定字符串的方法

    這篇文章主要介紹了C++中string替換所有指定字符串的實(shí)例代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • VC++時(shí)鐘函數(shù)

    VC++時(shí)鐘函數(shù)

    VC中提供了很多關(guān)于時(shí)間操作的函數(shù),編寫程序時(shí)我們可以跟據(jù)定時(shí)的不同精度要求選擇不同的時(shí)間函數(shù)來完成定時(shí)和計(jì)時(shí)操作
    2015-06-06

最新評(píng)論

嘉禾县| 仲巴县| 东山县| 旬邑县| 阆中市| 白银市| 长春市| 大英县| 龙江县| 灌云县| 崇仁县| 阳江市| 通榆县| 灯塔市| 平舆县| 合作市| 达拉特旗| 左贡县| 通许县| 阿拉善右旗| 阜宁县| 星座| 奈曼旗| 新巴尔虎左旗| 织金县| 酒泉市| 石河子市| 七台河市| 阿拉善左旗| 英德市| 沾化县| 汝南县| 乌鲁木齐县| 胶州市| 彝良县| 裕民县| 大连市| 天等县| 霍山县| 邮箱| 乐山市|