新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > C++中類的內存空間大小(sizeof)分析

        C++中類的內存空間大小(sizeof)分析

        作者: 時間:2016-12-01 來源:網絡 收藏

        #include
        #include
        #include

        class test
        {
        public:
        test();
        virtual ~test();
        virtual void get_a_c();
        private:
        int a;
        char c;
        };

        class derived_test:public test
        {
        public:
        virtual ~derived_test();
        private:
        doubled ;
        };

        class base
        {
        private:
        char a;
        static int refrence_count;
        std::string name;
        double price;
        std::vector dvec;
        public:
        base();
        virtual ~base();
        static int get_count();
        };

        int base::get_count()
        {
        return refrence_count;
        }

        int base::refrence_count = 0;

        class new_base
        {
        private:
        char a;
        double price;
        std::vector dvec;
        std::string name;
        static int refrence_count;
        public:
        new_base();
        virtual ~new_base();
        static int get_count();
        };

        int new_base::get_count()
        {
        return refrence_count;
        }
        int new_base::refrence_count = 0;

        class derived: public base
        {
        private:
        int min_qty;
        double discount;
        static int newp;
        public:
        derived();
        virtual ~derived(){};
        };

        class new_derived:public new_base
        {
        private:
        doublediscount;
        int min_pty;
        static int newp;
        public:
        new_derived();
        virtual ~new_derived(){}
        };

        int main()
        {
        std::cout << "The size of test is " << sizeof(test) << std::endl;
        std::cout << "The size of derived_test is " << sizeof(derived_test) << std::endl;
        std::cout << "The size of base is " << sizeof(base) << std::endl;
        std::cout << "The size of new_baseis " << sizeof(new_base) << std::endl;
        std::cout << "The size of derived is " << sizeof(derived) << std::endl;
        std::cout << "The size of new_derived is " << sizeof(new_derived) << std::endl;

        return 0;
        }

        上面在windows和linux的結果分別如下:
        windows:

        Linux:

        從上面的結果可以之知道在兩個系統下,結果是不一樣的。說明操作系統也對類的存儲空間大小有較大的影響。


        上一頁 1 2 下一頁

        關鍵詞: C++內存空間sizeo

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 万州区| 赤峰市| 正蓝旗| 奎屯市| 南溪县| 全南县| 肥城市| 安平县| 廉江市| 汉寿县| 金乡县| 高州市| 铜陵市| 瓦房店市| 原平市| 保定市| 达州市| 海兴县| 安岳县| 三明市| 绿春县| 张家港市| 陕西省| 南宫市| 兰溪市| 南木林县| 普陀区| 绩溪县| 郴州市| 米泉市| 林周县| 吉林市| 塘沽区| 兴城市| 肃宁县| 德令哈市| 石屏县| 广州市| 泉州市| 安丘市| 七台河市|