第4章多态性2要点.ppt

第4章多态性2要点

* * 虚函数的定义要遵循以下 * CStudent中未添加关键字virtual,但它继承了基类Show()的虚特性 * CStudent中未添加关键字virtual,但它继承了基类Show()的虚特性 * CStudent中未添加关键字virtual,但它继承了基类Show()的虚特性 * CStudent中未添加关键字virtual,但它继承了基类Show()的虚特性 * CStudent中未添加关键字virtual,但它继承了基类Show()的虚特性 * CStudent中未添加关键字virtual,但它继承了基类Show()的虚特性 * CStudent中未添加关键字virtual,但它继承了基类Show()的虚特性 * CStudent中未添加关键字virtual,但它继承了基类Show()的虚特性 * CStudent中未添加关键字virtual,但它继承了基类Show()的虚特性 * CStudent中未添加关键字virtual,但它继承了基类Show()的虚特性 * CStudent中未添加关键字virtual,但它继承了基类Show()的虚特性 * CStudent中未添加关键字virtual,但它继承了基类Show()的虚特性 * * * * * * * CStudent中未添加关键字virtual,但它继承了基类Show()的虚特性 * CStudent中未添加关键字virtual,但它继承了基类Show()的虚特性 * 例4-1 CPerson operator=( const CPerson oCPerson ) //赋值运算符重载 { if (this == oCPerson) //1、判断是否自己赋值给自己 { return *this; //是,则返回自己 } delete []m_lpszName; //2、释放自己的内存空间 m_lpszName = NULL; //将其置为NULL是一种好习惯。 m_lpszName = new char[strlen( oCPerson.m_lpszName )+1]; strcpy( m_lpszName, oCPerson.m_lpszName );//3、复制 delete []m_lpszSex; //释放自己的内存空间 m_lpszSex = NULL; m_lpszSex = new char[strlen( oCPerson.m_lpszSex )+1]; strcpy( m_lpszSex, oCPerson.m_lpszSex ); //复制 return *this; //4、返回赋值后的对象。 } * 作业 实现复数类的+ - * /运算符重载; * 复数类 class CComplex { public: void display() { coutm_dReal; if (m_dImage==0) return; else if(m_dImage0) cout+; coutm_dImageiendl; } private: double m_dReal; double m_dImage; }; * 复数类 CComplex CComplex:: operator+(CComplex comp) { CComplex com; com.m_dReal=m_dReal+comp.m_dReal; com.m_dImage=m_dImage+comp.m_dImage; return com; } com.m_dReal=this-m_dReal+comp.m_dReal; * 复数的加法按照以下规定的法则进行:设z1=a+bi,z2=c+di是任意两个复数,   则它们的和是 (a+bi)+(c+di)=(a+c)+(b+d)i. 规定复数的乘法按照以下的法则进行:   设z1=a+bi,z2=c+di(a、b、c、d∈R)是任意两个复数,那么它们的积 (a+bi)(c+di)=(ac-bd)+(bc+ad)i. * 复数的除法: 设复数a+bi(a,b∈R),除以c+di(c,d∈R),其商为x+yi(x,y∈R),   即(a+bi)÷(c+di)=x+yi   ∵(x+yi)(c+di)=(cx-dy)+(dx+cy)i.   ∴(cx-dy)+(dx+cy)i=a+bi.   由复数相等定义可知 cx-dy=a dx+cy=b   解这个方程组,得 x=(ac+bd)/(c^2+d^2) y=(bc-a

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档