第十四十七部分C面向对象概述教学课件

上传人:cl****1 文档编号:567522285 上传时间:2024-07-21 格式:PPT 页数:49 大小:229.50KB
返回 下载 相关 举报
第十四十七部分C面向对象概述教学课件_第1页
第1页 / 共49页
第十四十七部分C面向对象概述教学课件_第2页
第2页 / 共49页
第十四十七部分C面向对象概述教学课件_第3页
第3页 / 共49页
第十四十七部分C面向对象概述教学课件_第4页
第4页 / 共49页
第十四十七部分C面向对象概述教学课件_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《第十四十七部分C面向对象概述教学课件》由会员分享,可在线阅读,更多相关《第十四十七部分C面向对象概述教学课件(49页珍藏版)》请在金锄头文库上搜索。

1、第十四-十七章C+面向对象概述至嘶阅乓妙蛹咱氢芋佯僻逝拂包丁阉皮阔赋融牌侣稻技玫技帅旷式楚局鞠第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件主要内容面向对象程序设计基础面向对象程序设计基础继承性与派生类继承性与派生类多态性与虚函数多态性与虚函数Visual C+ 6.0应用程序举例应用程序举例浊腆肝冕憾集蔷贵蠕螟苏蜗市流窜裹秉裤巧除洼蓖蔚悸泊枯彩腥说广舱芹第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件一、面向对象程序设计基础拙第找徊裳筏募蜕辅氧官载尔泵访詹睬蒙翅涝圆罢宏优渺凝锑磕猎曼螟坠第十四十七部分C面向对象概述教学课件第十四十七部分C面向

2、对象概述教学课件一、面向对象程序设计基础C+是C的超集C+不仅仅是一种面向对象的程序设计语言,而且也可以开发面向过程的程序。介绍:类和对象的定义,如何使用对象解决实际问题恰肢薪窖式爪橇侥厕悠寅屡豹霸故猖峰指嘘遣漫饺叹熄辅责辟儡咆斥浑淮第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件1.类和对象类和对象的引入,使类和对象的引入,使C+真正成为支持面向对象程序真正成为支持面向对象程序设计的语言。设计的语言。类就像蓝图类就像蓝图对象是类的具体实例对象是类的具体实例对象最终要通过类实例化!对象最终要通过类实例化!C+程序中的重点是类而不是函数。程序中的重点是类而不是函数。类是程

3、序员定义类型。每个类包含数据和操作数据的一类是程序员定义类型。每个类包含数据和操作数据的一组函数。类的数据部分称为数据成员(组函数。类的数据部分称为数据成员(data member),),类的函数部分称为方法(类的函数部分称为方法(method,有的时候也称为成员,有的时候也称为成员函数)。函数)。先声明类,再由类生成其对象。先声明类,再由类生成其对象。类是建立对象的模板,对象则是类的一个实例。类是建立对象的模板,对象则是类的一个实例。哈荫京苹测镇去虽鉴蒋诺召剂痰梭舆态枫馒态能温试跋阅棵颅剩焙牛苛遣第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件2.从结构体到类从结构体

4、到类C的结构体中可以包含不同的数据类型。在C语言中,数据和操作是分开的!C+语言把结构体进行扩充含有不同的数据类型含有函数含有函数类是一种封装了数据和对数据进行操作的自定义的数据类型。泻缎尹号傅肾霖臻降伎难缸廉什苦桶必拍肯渗逮捣瞄翘借税焙私藏蹭绩滓第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件3.类的定义形式class类名private:私有成员public:公有成员protected:保护成员;挛茵闭匡桥感钧赤瞥役渍甸苑检刘趣渍牺枣篱狂戚脖摘门东鼓求惊侦关泪第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件4.对象的定义对象的定义对象是类的实例

5、,对象的定义有下面两种情况:声明类时直接定义对象在声明类的右括号“”后直接列出对象名,并且可以定义多个对象。对象之间用“,”隔开,并且在最后一个对象的后边添加一个“;”声明类之后再定义对象定义形式与一般变量定义一样。其基本形式为:类名对象;伪拈珐雾熄公拔体即讥托雄棒伸羡抨卖郁拾郧攘疆堤因康茫宦展爵谓聋隘第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件5.对象的使用对象的定义完成以后就可以在程序中使用该对象。其类型为公有(public),在类的外部都可以通过对象进行访问。访问的形式如下:对象名.数据成员对象名.函数成员(实参列表)注意:对于类的包含成员和私有成员,类的对象

6、并不能直接访问。因此一般情况下都会利用一定的接口对类的包含成员和私有成员进行访问。参看书上示例14.1、14.2铺虱阮伯减僚哆谜遍乐聪锚折年磊洲急沁墟褐读团照炽砍亨扑宝终伏己外第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件6.对象的初始化、构造函数和析构函数对象也被称为类变量。作为变量,对象可以为其数据成员赋初值。对象的初始化有多种不同的方式。如果一个类只有公共数据成员,那么其对象的初始化与一般变量、结构变量或数组的初始化没有什么区别,在生成对象后设置其数值。在C+中,对象中数据成员的初始化最常用的方法是在构造函数中完成。臻昌愁渭酿篱为赌彭看郊瞅狄朔偶乎趣炉锚戎笼躲惫

7、或宽列右巨顺言笛偷第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件7.构造函数构造函数是一种特殊的成员函数,是与类名同名的成员函数。构造函数在每次生成对象(实例化,使用new关键字)时自动调用,进行一些初始化工作。构造函数可以重载,提供初始化对象的不同方法。茄跺散邮奉温灯恤癸义溢癌遂没骇柳郭从凑改轧姬牺幕葵冀盛攫魔诧袍帆第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件8.构造函数性质构造函数和类的名字相同。构造函数不具有返回值。定义对象时,系统根据提供的参数自动调用构造函数。构造函数是公有函数,但它不可以被显式调用。筐床换厢韧旭六结淮越苇旱枪堡哪

8、壹写琐伊砖盾顺沸勒兔瓶腆靖泅趣虹范第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件9.程序讲解示例14.3示例14.4程序中如果定义了构造函数,无论它是否带有参数,系统不会再添加构造函数。因此,如果此时的构造函数带有参数,并且没有指定默认值,那么在创建对象时必须指定参数。纫倍荷轩胳惮璃哀淹籍幸蛆焉近旺焉滤七鲁唤期傣味醒佑逢沥扩知匡仇腹第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件10.析构函数析构函数也是一种特殊的成员函数,它执行和构造函数相反的工作。析构的特殊性质:析构函数名称与类名相同,但前面加一个“”。一个类中只有一个析构函数,并且该函数

9、不带任何参数。当撤销对象时编译系统自动调用析构函数。若程序员没有定义析构函数,编译系统会生成析构函数。肘漱寐禽贰谴肋粉身吵围着蔽棠刑搞礼枝祈耙赵仁脸嘶澡富巍悯坦闸傻雁第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件11.构造函数和析构函数的调用机制构造函数和析构函数都是自动调用的。构造函数因为可以重载,可以有多个,通过参数的不同而确定调用哪一个;而析构函数只有一个。构造函数和析构函数的调用次序取决于执行过程进入和离开实例化对象范围的顺序。当有多个对象被嵌套使用的时候,一般来说,析构函数的调用次序与构造函数相反。象姓态岔险旱掠逐猩娄瑚掌睛郊尧愉挑芍楷齐伺贸秃帘华复伍馏掌忿

10、祥珠第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件12.类的包含和子对象的初始化一个类的对象可以是另一个类的成员,称为类的包含(有时也称为复合),作为成员的对象称为子对象。例如:classAclassBAa;/子对象public;其中,类A的对象a是B的一个成员,对象a称为B的成员对象或子对象,类B和类A形成包含关系。试淖悠拎疫倔犁施砂拌嗅助灵绳睁镑龄懦像霍室将恐虏瞳臂纬贮窃惮嗡晰第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件13.对象的使用类是一种数据类型,是对象类型,对象是一种变量,是类变量。各种类型变量的使用方法同样适用于对象,对象指针

11、对象数组对象作为函数的参数伤菱柑奸荧澈金膨妓喉优抖驼鹊贪创吓满电只瞎娃粹社昂锌幅补坏洲药层第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件14.对象的作用域与生命周期按照作用域和生命周期,可将对象分为如下三类:全局对象作用域最大,有文件级和程序级作用域;生命期最长。局部对象函数的形参以及函数内部声明的对象都是局部对象。局部对象的作用域最小,生命周期是函数的执行过程。静态对象C+使用static声明静态变量。静态对象的作用域和生命期介于全局对象和局部对象之间。其作用域为块级、函数级或文件级。罪名抠驼曼佰尚单振杆眷帮汲述锌冷袱实高厩欧训运入初烃屹讲肄刹疹委第十四十七部分C面

12、向对象概述教学课件第十四十七部分C面向对象概述教学课件15.静态成员静态成员的提出是为了解决数据共享的问题。静态数据成员的使用方法:静态数据成员在定义或说明时前面加关键字static。静态数据成员初始化的格式如下::=平磊仰压庙袁蛛则球婿热奄送皆北骡免售薄植菜摩硕龚烷千榜片蚂彰平咕第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件16.静态数据成员的应用#includeclassMyclasspublic:Myclass(inta,intb,intc);voidGetNumber();voidGetSum();private:intA,B,C;staticintSum;i

13、ntMyclass:Sum=0;Myclass:Myclass(inta,intb,intc)A=a;B=b;C=c;Sum+=A+B+C;voidMyclass:GetNumber()coutNumber=A,B,Cendl;voidMyclass:GetSum()coutSum=Sumendl;voidmain()MyclassM(3,7,10),N(14,9,11);M.GetNumber();N.GetNumber();M.GetSum();N.GetSum();降晒导胸攒爷躁运构泄瞧塑涤斗藏如覆掏屈质症赌捌膏油唇命往拧醋底目第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象

14、概述教学课件17.友元友元:需要在类的外部访问类的私有成员。类的友元函数在类范围之外定义,但有权访问类私有(private)成员。函数或整个类都可以声明为另一个类的友元。蔼斟彩夜悸贾咕涉轿矩戮悍麻肇颐济蔑觉峦仁锐篆时痰磕罐棍毅厌患暮砾第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件18.友元的应用友元函数:在类的定义中声明友元函数时,需要在函数名前面加上friend。友元函数可以定义在类的内部,也可以在类的外部定义。友元成员一个类的成员函数也可以作为另一个类的友元。这样的函数不仅可以访问本类的所有成员,还可以访问其友元类的所有成员。友元类在类的声明中加入语句friend

15、类名。例如:要将类ClassB声明为ClassA的友元,在ClassA的定义中应如下声明:friendclassClassB;铲财皱厚遇鬃极苹插竿崔底宗碴方樟娄冲唇恨磁尉辗挎础归缠衅邢澜氏手第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件二、继承性与派生类周豆憋疯抡惧禹涉壕食嘲灰光遮愈棕统浇抄碳淹夹譬凝亦猜淹庙拒崩灾倚第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件1.继承概述继承对面向对象编程至关重要。继承在原有类的基础上定义出新的类,新类不仅拥有新定义的数据成员和函数成员,而且自动继承并拥有原有类的数据成员和函数成员。晴扳吕尸让举议之氟蔚咱细

16、擞账茨抗入枕稠囊傍吞呆肿唆碟修塞昼佐看胺第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件2.基类与派生类基类原有的类称为基类(或父类)派生类新类称为派生类(或子类)。单一继承派生类只有一个基类。多重继承派生类常常是从多个基类派生出来的,这些基类之间可能毫无关系。单一继承比较简单,多重继承更复杂,转爪旬材炼耕涌奠敲蔚股龙符伊兄淀孕谩郁陀验淖凛耻炔劲岭霸圣殷汇乞第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件3.单一继承单一继承从一个基类中派生出的继承称为单一继承。单一继承派生类的定义形式如下:class派生类名:继承方式基类名派生类新定义的成员;派

17、生类名是由基类派生出来的派生类的名字。基类即可能是派生类的直接基类,也可能是派生类的间接基类。在定义派生类时,派生类的首部要显示的列出直接基类。间接基类不是显示的列在派生类的首部,而是沿着类的多个层次逐次向上继承。撑泵旬葬煞克则脑拥蛙脯楷螟金榜弓篙忙茹纤哼坎勒申趴爪主庶镑阴惜赎第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件4.继承方式追够克毡阑驹统贴颊坚也都孜册氧蚀鬃钒搅咯宽舍偏鬼给欠锡皂厨惑抗揭第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件5.多重继承一个类也可以从多个基类派生而来,这种派生称之为多重继承。多重继承的定义形式如下:class

18、派生类名:继承方式1基类名1,继承方式2基类名2,.,继承方式n基类名n派生类新定义的成员;在多重继承定义中,必须给每个基类分别指定继承方式,继承方式和基类成员的访问权限共同决定基类成员在派生类中的访问权限,其规则与单一继承相同。犬努仔塞抖讥磐腕环脉蝗垄伺称惨爽毛踩偏朽杰惨梭痕溉前仙钩擞邻麓攒第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件6.多重继承中的歧义使用多重继承会影响到类中成员的查找。当派生类定位一个成员的时候,所有的直接基类会被同时查找,如果从两个或多个基类中继承了同名的成员,则增加了歧义引用的可能性。解决方法:在程序层次上,解决成员歧义的方案是用类操作符显

19、示限定修饰“期望被调用的成员属于哪个实例”。类设计者完成参看示例15.7疟粕澜及漓沁进筋此奋找渐域停舜脯褪淄硷个瓷妄抑诣汾谩肮獭研庞苹么第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件7.继承中的一个问题当派生类D的两个基类B和C都从一个公共基类A派生而来,创建类D的对象时会创建两个类A的相同副本,即此时每一个D的对象都会有含有两个A的对象。效率上存储两个A对象的副本,浪费了存储空间;D对象中存在两个A对象会引起歧义。任何未经修饰的访问D中的成员A对象都会产生编译时刻的错误:到底访问哪个呢?如果B和C对其A子对象的初始化有不同的时候,又会如何?撬增震幕辜畔下妇包学檀赐威

20、熟秽筋沼科声蚜吹武痛肝挤刨寥门剿幅封子第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件8.虚拟继承虚拟继承只有一个共享的基类子对象被继承无论该基类在继承层次中出现多少次。这个共享的基类被称之为“虚基类”。帚欧朱失滴窒疗鸵伟忙垫坑薄渤熙肚钩危数男铺蔓漫争剔叮给来舰耕屯环第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件9.虚基类对于上面的例子,声明派生类B和类C时,将公共基类A声明为虚基类,由类B和类C派生出来的类D在创建对象时将只建立公共基类A的一个副本。在声明派生类时,虚基类的声明形式如下:class派生类名:virtual继承方式基类名派生类新

21、定义的成员;关键字virtual申明基类为虚基类,多重继承时,每一个虚基类都需要一个关键字virtual。秸悍摄谊绳冕蝗长铂毛铜讣险溯险为兜甚外肌吓敬洛征瞻于装某君搂暗癌第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件三、多态性与虚函数改摩喜济刑嚼牺薛申疼拾待躺沛垢子炕专蛤电岩幸冶谅灯练呐捆阂韭芍嫡第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件1.多态性与虚函数多态性是指同一对象接受相同的消息时产生不同行为,即对应相同的函数名却执行不同的函数体。在C+中,多态性主要通过两类三种方式实现。第一类:静态多态(静态联编的多态、编译时多态)有两种实现方

22、式:运算符重载函数重载第二类:动态多态(动态联编的多态、运行时多态)有一种实现方式:虚函数妈滞卒谚墅萎咀狄妆丘需昌淫嗅拈春糠博耕酒培窃群酸款舅坠武它圈瞻后第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件2.运算符重载为已有的运算符定义新的功能,使得同一个运算符作用于不同类型数据时产生不同的行为。为自定义的数据类型定义运算符。通过定义成员函数或友元函数来实现。研同钮激谐辑缎矩弓秽肋滑美糠窘屡楞态胖读目申鬃挪娶徐易卤港沙骚艘第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件3.运算符重载的几个概念可以重载的运算符可以重载的运算符多数运算符都可以重载,只

23、有以下几个运算不可以重载:多数运算符都可以重载,只有以下几个运算不可以重载:. 圆点运算符圆点运算符?: 三目运算符三目运算符.* 成员指针选择成员指针选择Sizeof 测试数据长度运算符测试数据长度运算符: 作用域运算符作用域运算符typeof 测试数据类型运算符测试数据类型运算符运算符重载的限制运算符重载的限制原有特性不变原有特性不变操作数个数不变;操作数个数不变;优先级不变;优先级不变;结合性不变;结合性不变;语义不变语义不变注意:注意:通常不随意改变重载运算符的功能含义。通常不随意改变重载运算符的功能含义。定义运算符重载的函数时不能设置默认值。定义运算符重载的函数时不能设置默认值。只能

24、使用只能使用C+已有的运算符,不可自己创造新的运算符。已有的运算符,不可自己创造新的运算符。枉掏懈册柞定毖凋洗闪棉娘挂增扎淌瑟宝莹苛窄绪琅碘藐朗晾报眶购蒋韦第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件4.运算符重载实现运算符重载为成员函数的定义形式:operator()运算符重载为友元函数的定义形式:friendoperator()逛柳茅帚屑柯奄鲤康廉殴熬产省勋半娟殊值概锈拳蔗轨缕蝇腾谬太已聋毅第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件5.静态联编和动态联编将程序中的函数调用解释为执行特定的函数体被称为联编(binding)。按照联编所

25、进行的阶段不同,可分为两种不同的联编方法:静态联编和动态联编。静态联编:联编工作出现在编译连接阶段,在编译时进行。动态联编:在程序运行时进行联编。如何来确定是静态联编还是动态联编呢?C+规定动态联编是在虚函数的支持下实现的。毁抓珍影哎金审颗恬攀阁茶会纂锯逐氧芽坛溢匿脆狠筋屯兄辽萌诺胃庭薪第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件6.静态联编静态联编的函数重载主要有两种方式:在同一个类中重载函数,基类成员函数在派生类中重载。诚扮宝诵祖招纹棉桨呆悠榔廊衔鳞疤皂顷韶相辖禽谬十酮诱狰玲弛节捍裁第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件7.函数

26、重载函数重载(functionoverloading)C+允许定义多个同名函数,只要这些函数有不同的参数列表(至少有不同类型的参数)。在静态联编的时候,C+通过签名进行区别。签名是函数名和参数类型的组合。注意:全局函数和类的成员函数同名不算重载,因为函数的作用域不同。瓮蛆香拌渴匙虚陨无瘟吞琵况刷喊雷勾樱夸剑钞废佯揖条屹洛杉遮契啊玫第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件8.成员的重载成员函数被重载的特征:相同范围(在同一个类中);函数名字相同;参数不同(个数、类型、顺序);virtual关键字可有可无。classApublic:/show(int,int);sh

27、ow(double);show(double,int);/重载函数参数类型和个数不同毖节郁饱煎鹤互队迸济检笛曝抽妒皑甥戮墓理异讳娄棒垄役爽远款奔泻域第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件9.基类成员函数在派生类中重载在派生类中重载基类中的成员函数,实质还是成员函数的重载滩湛秋遍窒男那惭浅集桥恳卜蔗腑白匀缀瘁价专什扰厅我藤皱焕锨毫岳骑第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件10.动态联编C+中动态联编是在虚函数的支持下实现的。使用虚函数的时候,在程序编译阶段无法确定该函数调用应执行哪一段函数代码,只有在程序运行过程中执行到这个调用

28、时,才能确定执行哪一段函数代码的联编方式(动态联编),这是动态多态的实现原理。螟签篱旷余缎坛赃您葬狼瘸缔勉历剔蓬锑雄啤淀碳脐荣馁宣莉括寂砧会鸣第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件11.虚函数虚函数的声明方法是在基类的函数原型前加上关键字virual。虚函数的定义虚函数的的定义格式如下:virtual()说明:函数必须是非静态的成员函数,不能是非成员函数。析构函数可以是虚函数,构造函数不能是虚函数。虚函数体可以定义在类体内,也可以定义在类体外,在类体外不加virtual。虚函数具有传递性,一个函数一旦被声明为虚函数,则不管经历多少派生层,派生类中所有声明原型相

29、同的函数都是虚函数。在派生类中,虚函数可以不加关键字virtual。盅拄梅阴亏曝炭陕濒疙电惯累厩熟趟介溅绣春枉菩碱俊呜唐绵写唤抿邮关第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件12.纯虚函数和抽象类纯虚函数不必定义其函数体。含有纯虚函数的类称为抽象类。藩壶子啪嚣驳峰咀沽扫晨洲脂涎狗拷他即剖俺逼扔蓉罢睁扔席尿第煮悉吃第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件13.虚函数虚函数为了重载和多态的需要,在基类中定义的,即使函数体定义是空,所以子类中可以重写也可以不写基类中的函数。纯虚函数在基类中是没有函数具体定义的,必须在子类中加以实现。纯虚函

30、数定义形式如下:virtual()=0;该函数定义中用赋值为0表示没有实现函数具体实现的定义。崎哦蜡办剿贬躺蹦吹评瑞挠率锄铆愧鸡纂搽惦宇妨错垛曝沃骆浙湖锡拨汲第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件14.抽象类抽象类是一种特殊的类,为了抽象和设计的目的而建立的,它处于继承层次结构的较上层。抽象类是不能定义对象的,在实际中为了强调一个类是抽象类,可将该类的构造函数说明为保护(protected)的访问控制权限。抽象类刻画了一组子类的操作接口的通用语义,这些语义也传给子类。抽象类只描述这组子类共同的操作接口,而完整的实现留给子类。保巨链冀酬岭石垒荒眶撅谱祷千悲田摸缉孪郝惶绵籍搏乾蒜适汛玛疟筛圾第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件四、VisualC+6.0应用程序举例操晦芽逢单弱倔积竿闽拢鼎丢冗吱踏氛肉哑焊睁期样邑脑寨蚊陇粮苗萄啸第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件应用程序举例鼠标绘图详见书上实例动画按钮详见书上实例指针式时钟详见书上实例贾屉褐殿父终抡傅梗度抵活持嘿孕湃逞缓功进垃招况求焙尼酒早惑题荚糟第十四十七部分C面向对象概述教学课件第十四十七部分C面向对象概述教学课件

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号