欢迎来到天天文库
浏览记录
ID:49492724
大小:2.68 MB
页数:25页
时间:2020-02-26
《黄建的PPT教学课件,C++_05_类和对象.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、类和对象类和对象类和对象友元类和对象成员对象析构函数构造函数静态成员常成员本章内容浅层复制可行性研究初步项目计划需求分析概要设计详细设计实现测试使用维护退役定义定义开发开发维护开发维护开发维护类和对象软件生命周期结构化程序设计自顶向下逐步求精模块化限用goto先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标对复杂问题,先设计一个目标作为过渡,然后逐步细化把程序要解决的总目标分解为一个一个的模块限制使用goto语句,程序的质量与goto语句数量成反比面向对象的方法易理解易稳定易维护易重用易开发类与对象类女孩对象张珊属性年龄学历方法吃饭购物属性年龄:18学历:大学方
2、法吃饭:用叉购物:刷卡类是对象的抽象,对象是类的实例类是具有共同属性和方法的对象的集合变量函数可以把现实世界的事物抽象成对象。对象一般有两个特征:属性和行为。软件的对象概念是由现实世界对象抽象而来的。把现实世界对象的属性保存在软件对象的变量中;现实世界对象的行为通过软件对象的函数来实现。把相似的对象划归成一个类。在软件中,类就是一个模板,它定义了通用于一个特定种类的所有对象的属性(变量)和行为(函数)。类是创建对象的模板,对象是类的实例。类与对象123汽车的属性颜色长度高度速度汽车的行为void刹车(){}void踩油门(){}用Car这个类实例化一个具体的对象car
3、。调用对象的成员函数car.drive()。将一辆汽车看成一个对象,将所有汽车对象的共性抽取出来,设计一个类Car,类中有一个成员函数voiddrive()。编写驾驶汽车程序123this指针是对象的指针,一直指向对象本身,代表了对象的地址。当对一个对象调用成员函数时,编译程序将对象的地址赋值给this指针,然后调用函数。它隐含于每个类的非静态成员函数中,明确地表示出了成员函数当前操作的数据所属的对象。this指针12可以使用this指针区分类的成员变量和成员函数中的局部变量。3内联函数1234内联函数比普通函数有更高的执行效率,它没有普通函数参数传递的调用开销。编译
4、器将在类的说明部分定义的任何函数都认定为内联函数,即使它们没有用inline。内联函数中的执行代码不能太多,结构不能太复杂,否则编译器将放弃内联方式。可以把inline关键字放在函数定义中函数类型之前,以定义内联函数。在创建对象时,系统自动调用构造函数;构造函数最重要的作用是创建对象本身。如果一个类没有提供任何构造函数,则C++提供一个默认的无参数的构造函数。可以定义多个构造函数(函数重载)。只要类定义了构造函数(不管是否带参数),C++就不再提供默认的构造函数。构造函数必须与类名相同;构造函数不指定返回类型;每个类必须有构造函数。1234构造函数构造函数当一个对象生
5、命周期结束时,其占有的内存空间就要被回收,这个工作由析构函数来完成。可以在构造函数中初始化对象的某些成员,给其分配内存空间,在析构函数中释放对象所申请的资源。析构函数名是在类名前加求反符号~,析构函数不允许有返回值。析构函数不允许带参数,并且一个类中只能有一个析构函数。123析构函数析构函数静态数据成员在每个对象中不占有存储空间,它只在类中分配存储空间。静态数据成员在类中只有一个副本,可以被任何一个对象更新,从而实现共享。初始化的格式:<数据类型><类名>::<静态数据成员>=<值>;初始化时,前面不得加关键字static。公有的静态数据成员可以直接访问。1234静态
6、成员静态数据成员静态成员函数1234使用static声明的静态成员函数属于整个类,而不属于类中的某个对象。静态成员函数可以在类体内或类体外定义。在类体外定义时,不能使用static作为前缀。静态成员函数可直接访问静态成员。但必须通过参数传递得到对象,才能访问非静态成员。类的静态成员在类的对象被建立之前就已经存在了,因此可以不依赖于任何对象被访问。对于既需要共享又要防止改变的数据应该定义为常量进行保护,以保证它在整个程序运行期间是不可改变的。使用关键字const修饰的对象称为常对象,如:<类名>const<对象名>或const<类名><对象名>常对象在定义时应进行初始化
7、,并且不能被更新。123常成员常对象<返回类型><成员函数名>(<参数表>)const;在函数实现部分也必须带有const关键字。常对象不能被更新,因此只能调用它的常成员函数,而不能调用其它成员函数。常成员函数也不能更新对象的数据成员。常成员函数123const也用于函数重载:一般对象调用一般成员函数,常对象调用常成员函数。但是当类中只有一个常成员函数时,一般对象也可调用该常成员函数。用关键字const说明的数据成员称为常数据成员,不能被更新。常数据成员的初始化必须通过构造函数的成员初始化列表进行。例如:classA{private:constint
此文档下载收益归作者所有