一段代碼講述C++繼承、多態、友元、靜態變數、重載

來源:互聯網
上載者:User

class Persion   //抽象基類
{
public:
  virtual void SetDieAge(int x) = 0; //純虛函數
protected:
private:
};
class Man :public Persion
{
friend class God;   //友元的使用
private:
    virtual void SetDieAge(int x){m_Dieage = x;}
protected:
private:
static int m_TotalAge;    //靜態成員
int m_Dieage;
};
 
int Man::m_TotalAge = 1000;    //靜態成員初始化

class Wman:public Persion   //繼承
{
friend class God;
private:
virtual void SetDieAge(int x){m_Dieage = x;}
protected:
private:
static int m_TotalAge; 
int m_Dieage;
};

 int Wman::m_TotalAge = 100;  //類執行個體的對象都使用這一個拷貝

class God 
 {
 public:
int TellYourDieAge(Man *p);   //函數重載
int TellYourDieAge(Wman *p);  //函數重載
void SetYourDieAge(Persion *p,int x);  //多態  處理抽象基類就能夠 處理衍生類別
int TellYourTotalAge(Wman *p);       //函數重載
int TellYourTotalAge(Man *p);        //函數重載
 protected:
 private:
 };

void God::SetYourDieAge(Persion *p,int x) //多態  
{
p->SetDieAge(x);
}

int God::TellYourDieAge(Man *p)
{
return p->m_Dieage;     //友元處理私人成員變數
}
int God::TellYourDieAge(Wman *p)
{
return p->m_Dieage;
}
int God::TellYourTotalAge(Wman *p)
{
  return p->m_TotalAge;
}
int God::TellYourTotalAge(Man *p)
{
return p->m_TotalAge;

}

Man g_Man,g_Man1;
Wman g_Wman;

God  g_God;

int _tmain(int argc, _TCHAR* argv[])
{
    g_God.SetYourDieAge(&g_Man,80);
    g_God.SetYourDieAge(&g_Wman,85);

    printf("%d\n",g_God.TellYourDieAge(&g_Man));
    printf("%d\n",g_God.TellYourTotalAge(&g_Man));  
    printf("%d\n",g_God.TellYourTotalAge(&g_Man1));
    
Sleep(5000);
return 0;
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.