资源描述:
《清华c++程序设计课程课件(3)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、4.类的继承和派生°继承和派生(DerivationandInheritance)是C++C++程序设计(3)的重要机制,是面向目标设计的重要特征°该机制自动为一个类提供来自另一个类的操孙甲松作和数据结构清华大学电子工程系°这样可以利用已构造好的类生成新类,充分利用已有资源sun@thsp.ee.tsinghua.edu.cn°保持已有类的特性而构造新类的过程称为继2008.7.承°在已有类的基础上新增自己的特性而产生新类的过程称为派生12摘要一个生物的继承和派生图4.1概述猫科动物4.2访问控制食肉动物4.3保护的成员4.
2、4友元与继承动物类熊科动物4.5访问权限调整4.6成员名限定生物类食草动物4.7动态束定与虚函数4.8纯虚函数植物类4.9多继承344.1概述类继承的语法形式:例如:点类与矩形类class标识符2:访问控制标识符1classShape{{新成员和成员函数}public:voidSetB(intx,inty);其中:voidMoveB();标识符1-----基类voidDisplayB()const;标识符2-----派生类private:intX,Y;访问控制-----类的继承方式,有三种:};public:公有继承clas
3、sRectangle:publicShape{protected:保护继承public:voidSetD(intx,inty,intw,inth);private:私有继承voidDisplayD()const;新成员和成员函数:指在继承基类的成员和成员函数后,新增加的成员和成员函数private:intWidth,Height;5};61ò说明:4.2访问控制(继承性质)òShape是点类,有:当访问控制为public(公有继承),则派生类两个私有成员:X,Y,表示一个点的坐标全部继承基类,包括访问权限(X,Y);当访问控
4、制为private(私有继承),则禁止派三个成员函数:SetB(),MoveB(),DisplayB()生类对基类的直接访问,即使是派生类的成òRectangle是矩形类,是Shape类的派生类,有:员函数也不能直接访问基类的私有成员四个私有成员:X,Y,Width,Height;派生类的成员函数只能访问基类中具有公有访五个成员函数:SetB(),MoveB(),DisplayB(),问特性的成员或成员函数SetD(),DisplayD()通过不同性质的继承,派生类改变了对基类的òRectangle类全部继承了Shape类的
5、成员和成员访问权限函数,并加入了新的成员和成员函数78访问权限的继承和调整继承性质基类中成员访问派生类中成员的访例如:权限问权限voidShape::SetB(intx,inty)publicpublic{X=x;Y=y;}voidRectangle::SetD(intx,inty,intw,inth)publicprotectedprotected{SetB(x,y);//不可以X=x,Y=y;privateprivateWidth=w;publicprotectedHeight=h;protectedprotectedp
6、rotected}privateprivate虽然Rectangle类继承了Shape类的所有成员和成员函publicprivate数,Shape类的私有成员X,Y也是Rectangle类的私有成员,但Rectangle类的成员函数SetD()仍不能直privateprotectedprivate接访问X,Y,而要通过Shape类的公有成员函数privateprivateSetB()间接访问。910#includevoidShape::DisplayB()constclassShape{{cout<<
7、X<<''<8、nty,intw,inth);cout<<''<