sizeof 和類繼承 虛繼承 求類大小

來源:互聯網
上載者:User

標籤:sizeof 和類繼承 虛繼承 求類大小

代碼:

#include <iostream>using namespace std;/*class a{float k;  // 4位元組virtual void foo(){} //有一個4位元組的指標指向自己的虛函數表};class b : virtual public a{  virtual void f(){}};  有這樣的一個指標vptr_b_a,這個指標叫虛類指標,也是四個位元組;還要包括類a的位元組數,所以類b的位元組數就求出來了。運行結果:8 16*//*class a{float k;virtual void foo(){}};class b : public a{virtual void f(){}};運行結果:8 8*//*class a{virtual void foo(){}};class b : public a{virtual void f(){}};運行結果:4 4*/class a{virtual void foo(){}};class b : virtual public a{virtual void f(){}};// 運行結果: 4 12void main(){cout<<sizeof(a)<<" "<<sizeof(b)<<endl;}//總結: 基類不需要解釋 記憶體對齊  //衍生類別 如果是virtual 繼承  ,有這樣的一個指標vptr_b_a,這個指標叫虛類指標,也是四個位元組, 還要包括類a的位元組數,// 如果不是virtual 繼承,需要包含基類非函數成員


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.