您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第二章_从结构到类的演变
第二章从结构到类的演变C++程序设计2本章主要内容结构的演化面向过程与面向对象C++语言面向对象程序设计的特点使用类与对象string对象数组32.1结构的演化结构体:就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型。它的特点和数组主要有两点不同,首先结构体可以在一个结构中声明不同的数据类型,第二,相同结构的结构体变量是可以相互赋值的,而数组是做不到的,因为数组是单一数据类型的数据集合,它本身不是数据类型(而结构体是数据类型)4结构的演化结构体的格式:struct结构名{数据成员成员函数};参考P31【例2.1】分号不能少5结构的演化封装:若结构体中的数据成员被定义为private,则称为数据的封装。私有的数据成员,只能通过公有的成员函数才能使用6结构的演化structPoint{private:doublex,y;public:voidSetxy(doublea,doubleb){x=a;y=b;}voidDisplay(){coutx“\t”yendl;}};思考:如何给x,y赋值?7结构的演化构造函数:函数名与结构名相同的函数structPoint{……Point(inta,intb){……}};定义结构体对象的时候调用。Pointa(10,20);8结构的演化分为:无参构造函数,有参构造函数允许多个构造函数同时存在,即为构造函数的重载参考教材P32【例2.3】92.2从结构演变为类对象:就是一类物体的实例类:具有相同属性和行为的一组对象的集合,为属于该类的全部对象提供了统一的抽象描述。类与对象的关系:如同一个模具与用该模具铸造出来的器件。如:车是一个类(轮胎、椅子,刹车等),汽车车、卡车都是车的一个对象10使用关键字class代替struct,就是一个标准的类。classPoint{……};参考教材P33【例2.4】2.2从结构演变为类112.3面向过程与面向对象“面向过程”是一种以事件为中心的编程思想。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了“面向过程”就是汽车启动是一个事件,汽车到站是另一个事件。在编程序的时候我们关心的是某一个事件。而不是汽车本身。我们分别对启动和到站编写程序。122.3面向过程与面向对象“面向对象”是一种以事物为中心的编程思想。“面向对象”需要建立一个汽车的实体,由实体引发事件。我们关心的是由汽车抽象成的对象,这个对象有自己的属性,象轮胎,颜色等;有自己的方法,象启动,行驶等.方法也就是汽车的行为.而不是汽车的每个事件132.4C++语言面向对象的特点面向对象具有抽象、封装、继承、多态等特点14C++语言面向对象的特点抽象:从表面看事物,集中于事物的本质特征,而不是具体细节或具体实现。在C++中,将一组对象的共同特征(属性和操作)抽象出来,从而形成“类”。如:把人抽象成一个类(身高、体重、吃饭等),张三是人这个类的一个对象。15C++语言面向对象的特点封装:把对象的属性和行为结合为一个独立的单位,并尽可能的隐蔽对象的内部细节,对象的属性值(除了公有的属性值外)只能由这个对象的行为来读取和修改。如:开车不需要了解各个零件的运行细节,只需要根据汽车提供的行为(刹车等)来操作即可16C++语言面向对象的特点继承:指一个类可以获得另外一个类的特征具有层次模型,低层类只需定义特定与它的特征,共享高层类的所有特征如:大学生继承于学生,学生继承于人17C++语言面向对象的特点18C++语言面向对象的特点多态:同一函数名对应多个具有相同功能的不同函数,可以使用相同的方式来调用这些具有不同功能的同名函数,从而产生完全不同的行为现象。体现方式:方法的重载、方法的重写192.5使用类与对象string类的使用string类用于定义存储字符串的对象,需要包含该类的头文件#includestring使用双引号把字符串的值括起来,格式如下:string对象名=“初始值”;stringstr1=“test”;string对象名(“初始值”);stringstr2(“test”);202.5使用类与对象string类成员方法的使用1.获取字符串的长度对象名.size();stringstr1=“test”;str1.size();可使用“+”进行字符串的连接str1=“test”+‘’+“123”;212.5使用类与对象2.获取字符串的子串对象名.substr(起始位置,长度);stringstr=“c++test”;str.substr(3,4);//取出“test”注意:字符串的位置从0开始给出的位置必须在字符串的范围中长度若大于整个字符串的长度,则截取到末尾思考:要取出值为“c++”,应该怎么写?222.5使用类与对象3.查找字符串所在的位置对象名.find(要查找的字符串,开始查找的位置);stringstr=“c++test”;inti=str.find(“test”,0);注意:若查找不到该字符串,则返回-1若不指定开始位置,默认从0开始查找232.5使用类与对象练习:P41【例2.8】242.5使用类与对象complex类的使用使用模板对象定义复数对象时,才指明其数据类型及值格式:complex数据类型对象名(实部值,虚部值);complexintnum1(2,3);可通过real()方法获取实部值num1.real();可通过imag()方法获取虚部值num1.imag();参照教材P44【例2.10】252.6string对象数组与泛型算法基本泛型算法与其他数组一样string类使用begin()函数指向第一个函数string类使用end()函数指向最后一个函数stringstr[]={“chongqing”,”zdsoft”,”school”}reverse(str.begin(),str.end());swap()函数用于交换两个数组分量str[0].swap(str[1]);参照教材P45【例2.11】~【例2.13】
本文标题:第二章_从结构到类的演变
链接地址:https://www.777doc.com/doc-3973262 .html