久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2125|回復: 0
打印 上一主題 下一主題
收起左側

C++中繼承內存分配

[復制鏈接]
跳轉到指定樓層
樓主
ID:108615 發表于 2016-3-13 17:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
如有錯誤,歡迎指正,謝謝!!!!
一、沒有虛函數,沒有繼承的類內存結構:
     1.如下定義一個類:
     class A
     {
      public:
          void seta(int x) {a = x;};
          void setb(int x) {b = x;};
          int  sum() {return a+b;};
      private:
         int a;
         int b;
     };

二、沒有虛函數,有繼承的類內存結構:
  class A

   public:
    void seta(int x){a = x;};
   privated:
    int a;
  };

  class B:class A
  {
  public:
   void setb(int x){b = x;};
   privated:
    int b;
  };
在這樣的實例中,先分配父類變量,再分配子類變量。
如果是多重繼承的話,則按順序分配父類的變量。

三、有虛函數,沒有繼承的類內存結構:
若果類中含有虛函數時,類對象的內存分配有不一樣的地方。如:
  class A
  {
   public:
    virtual init(int x,int y){a = x;b = y;};
    virtual init(){a = 0;b=0;};
    int sum();
   priviate:
    int a,b;
  }
此時,在類實例內存中,首先是虛函數表指針,然后才分配變量。

四、有虛函數,單繼承的類內存結構:
單繼承關系分為虛函數覆蓋和不覆蓋兩種,當不覆蓋時,虛函數表先是父類的虛
函數表,然后是子類的虛函數表,當覆蓋時,同樣排序,但父類的被覆蓋虛函數
地址為子類的相應的虛函數的地址。變量的分配和上面的相同。

五、有虛函數,多繼承的類內存結構:
class C
{
public:
  virtual C1(){return 1;};
  virtual C2(){return 2;};
  setc(int x){c = x;};
private:
  int c;
};
class B
{
public:
  virtual B1(){d1=1;};
  virtual B2(){d2=2;};
private:
  int d1;
  int d2;
};

class A
{
public:  
  int sum(){return a1+a2;};
  virtual  A1(int x,int y){a1 = x;a2 = y;};
  virtual  A2(){a3=0;};
  virtual  A3(int x){a3 = x;};
  virtual  A4(){a1*a2*a3;};
private:
  int a1;
  int a2;
  int a3;
};
class D:public A,public B,public C
{
public:
  virtual D1(int x,int y){d1=x+10;d2=y+10;d3=d1*5;d4=d2*7;};
  virtual D2(){return 8;};
private:
  int d1,d2,d3,d4;  
};

此時,類D 的實例的內存分配應該如下:
A的虛函數表指針,緊跟這個虛函數表的是D的虛函數地址。
A的變量分配
B的虛函數表指針
B的變量分配
C的虛函數表指針
C的變量分配
D的變量分配
如果有虛函數覆蓋,則和上面描述相同,用D的虛函數地址覆蓋相應的父類的虛
函數表中虛函數的地址。



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久久久久婷婷天堂 | 亚洲高清一区二区三区 | 一区二区视频在线观看 | 成人高清在线 | 日韩成人精品一区 | 国产精品久久一区 | 99精品视频免费观看 | 亚洲国产精品人人爽夜夜爽 | 久久这里只有精品首页 | 天堂亚洲网 | 亚洲一区在线日韩在线深爱 | 欧美日韩三级在线观看 | 欧美黄色片 | 欧美1页 | 欧美一区二区三区精品 | 国产欧美一区二区三区另类精品 | 一区二区三区观看视频 | www.国产一区 | 日韩欧美国产一区二区三区 | 久久免费大片 | 九九激情视频 | 国产在线不卡 | 九九热这里 | 久久久91 | 精品视频一区二区在线观看 | 亚洲欧洲综合av | 亚洲在线一区二区三区 | 日韩无| 97色免费视频 | 91中文视频| 国产精品激情在线 | www狠狠干| 亚洲国产一区二区三区在线观看 | 亚洲成在线观看 | 精品国产乱码久久久久久老虎 | 亚洲精品免费在线观看 | 亚洲一级黄色 | 精品久久一区 | 亚洲欧美在线观看 | 一区二区在线不卡 | 成人av网站在线观看 |