欢迎来到天天文库
浏览记录
ID:50082252
大小:591.50 KB
页数:171页
时间:2020-03-08
《C++面向对象程序设计 教学课件 作者 李兰_第6章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、6.1静态联编和动态联编(StaticBindingandDynamicBinding)6.2虚函数(VitualFunctions)6.3纯虚函数和抽象类(PureVirtualFunctionsandAbstractClasses)6.4运算符重载(OperatorOverloading)6.5实例分析(CaseStudy)6.6常见编程错误(CommonProgrammingErrors)本章小结(ChapterSummary)习题6(Exercises6)6.1.1静态联编(StaticBinding)联编是指一个计算机程序自身彼此关联的过程。联编在编译和连接时进行,
2、称为静态联编。6.1静态联编和动态联编(StaticBindingandDynamicBinding)【例6-1】分析程序输出结果,理解静态联编的含义。程序如下:#includeconstdoublePI=3.14;usingnamespacestd;classFigure//定义基类{public: Figure(){};doublearea()const{return0.0;}};classCircle:publicFigure//定义派生类,公有继承方式{public:Circle(doublemyr){R=myr;}double
3、area()const{returnPI*R*R;}protected:doubleR;};classRectangle:publicFigure//定义派生类,公有继承方式{public:Rectangle(doublemyl,doublemyw){L=myl;W=myw;}doublearea()const{returnL*W;}private:doubleL,W;};intmain(){Figurefig;//基类Figure对象doublearea;area=Fig.area();cout<<"Areaoffigureis"<
4、l;Circlec(3.0);//派生类Circle对象area=c.area();cout<<"Areaofcircleis"<constdo
5、ublePI=3.14;usingnamespacestd;classFigure//定义基类{public:Figure(){};doublearea()const{return0.0;}};classCircle:publicFigure//定义派生类,公有继承方式{public:Circle(doublemyr){R=myr;}doublearea()const{returnPI*R*R;}protected:doubleR;};classRectangle:publicFigure//定义派生类,公有继承方式{public:Rectangle
6、(doublemyl,doublemyw){L=myl;W=myw;}doublearea()const{returnL*W;}private:doubleL,W;};voidfunc(Figure&p)//形参为例基类的引用{cout<
7、/Rectangle派生类对象cout<<"Areaofrectangleis";func(rec); return0;}程序运行结果为:Areaoffigureis0Areaofcircleis0Areaofrectangleis06.1.2动态联编(DynamicBinding)联编在程序运行时进行,称为动态联编,或称动态绑定,又叫晚期联编。在编译、链接过程中无法解决的联编问题,要等到程序开始运行之后再来确定。动态联编的主要优点是提供了更好的编程灵活性、问题抽象性和程序易维护性,但是与静态联编相
此文档下载收益归作者所有