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;
};
{
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;
Wman g_Wman;
{
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;
}
{
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; //类实例的对象都使用这一个拷贝
{
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;
}
Wman g_Wman;
God g_God;
{
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;
}