class B
{
private:
int val;
char c1;
char c2;
char c3;
};
class A1
{
private:
int val;
char c1;
};
class A2: public A1
{
private:
char c2;
};
class A3: public A2
{
private:
char c3;
};
如果將B,寫成A3的繼承形式,並且擁有相同的成員變量
sizeof(B) = 8; // alignment
sizeof(A3) = 16;
sizeof(A2) = 12;
sizeof(A1) = 8;
爲什麼繼承的類,它自己的成員變量沒有填補父類由於alignment而增加的內存?
不佔用已經填補的內存是爲了保證使用時正確的賦值
繼承的內存分佈和代價
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
一文搞懂5種內存溢出案例,內含完整源碼
原創
2024-06-05 10:56:55
Koupleless 單進程多應用如何解決兼容問題
原創
2024-06-04 23:14:24
pfinder實現原理揭祕
原創
2024-06-04 02:39:24
pfinder實現原理揭祕
原創
2024-06-04 02:37:09
pfinder實現原理揭祕
原創
2024-06-04 02:34:44
WebSocket替換Http協議的邏輯實現
原創
2024-06-03 11:25:33
DataCube 漏洞小結
原創
2024-05-30 11:16:40
Dolphinscheduler不重啓加載Oracle驅動
原創
2024-05-28 21:22:10
鴻蒙原生應用再新丁!新華社 入局鴻蒙
原創
2024-05-27 23:42:19
記一次攻防演練中的若依(thymeleaf 模板注入)getshell
原創
2024-05-27 23:16:06
RequestBodyAdvice 詳細介紹與使用實現例子介紹
原創
2024-05-27 10:53:58
鴻蒙原生應用再新丁!學習強國 入局鴻蒙
原創
2024-05-24 23:43:49
同樣的APP爲何在Android 8以後網絡感覺變卡?
原創
2024-05-23 23:57:27
鴻蒙原生應用再新丁!芒果TV 入局鴻蒙
原創
2024-05-23 23:43:35