版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、复习:复习:指针数组vs.数组指针int *p110;int (*p2)10;指针数组:指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是“储存指针的数组”的简称。数组指针:数组指针:首先它是一个指针,它指向一个数组。在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道。它是“指向数组的指指向数组的指针针”的简称。1复习:复习:指针数组vs.数组指针2int *p110; 指针数组指针数组int (*p2)10; 数组指针数组指针“”的优先级比“*”要高。如何使用:如何使用:指针数组定义 int *p1n;优先级高,先与p1结合成为一个数组,
2、再由int*说明这是一个整型指针数组,它有n个指针类型的数组元素。这里执行这里执行p1+1是错误的,这样赋值也是错误的:是错误的,这样赋值也是错误的:p=a;因为p是个不可知的表示,只存在只存在p10、p11、p12.p1n-1,而且它们分别是指针变量可以用来存放变量地址。如要将二维数组赋给一指针数组:int *p13;int a34;for(i=0;i3;i+)p1i=ai;这里int *p13 表示一个一维数组内存放着三个指针变量,分别是p10、p11、p12所以要分别赋值。3如何使用:如何使用:数组指针定义 int (*p2)n;()优先级高,首先说明p是一个指针,指向一个整型的一维数组
3、,这个一维数组的长度是n,也可以说是p的步长。也就是说执执行行p+1时,时,p要跨过要跨过n个整型数据的长度个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a34;int (*p2)4; /该语句是定义一个数组指针,指向含4个元素的一维数组。 p2=a; /将该二维数组的首地址赋给p2,也就是a0或&a00 p2+; /该语句执行过后,也就是p2=p2+1;p跨过行a0指向了行a1所以数组指针数组指针也称指向一维数组的指针,亦称行指针行指针。4总结:总结:指针数组vs.数组指针数组指针数组指针只是一个指针变量一个指针变量,似乎是C或C+语言里专门用来指向二维数组指向二维
4、数组的,它占有内存中一个指针的存储空间。指针数组指针数组是多个指针变量多个指针变量,以数组形式存以数组形式存在内存当中在内存当中,占有多个指针的存储空间。5C+类类C+类为了支持面向对象程序设计,C+在C语言结构体(struct)数据类型的基础上引入了类这种抽象数据类型。C+面向对象编程实质上就是面向类编程,只有定义和实现了类,才能声明属于这个类的对象,才能通过对象使用定义的成员。传统C程序员把编程重点放在函数的编写上,而C+程序员把重点放在类的定义和实现上。C+类类类的定义与实现C+类将对象的属性抽象为数据成员,将对象的行为抽象为成员函数,并对它们进行封装。数据成员又称成员变量,成员函数又称
5、为方法。C+类在形式上类似于C语言中用户自定义的结构体类型,但定义类时规定了成员的访问控制权限。类的定义分为声明部分声明部分和实现部分实现部分:声明部分用来说明该类的成员,主要说明声明部分用来说明该类的成员,主要说明“干什么干什么”实现部分对成员函数的具体操作进行定义,主要阐述实现部分对成员函数的具体操作进行定义,主要阐述“怎怎么干么干”Object Oriented Programming 8世界中的实体通过抽象生成类的过程世界中的实体通过抽象生成类的过程实体 属性 行为 现实世界 抽象 程序设计 (数据,数据,) (函数,函数,) public private C+类名 C+类类C+类的声
6、明形式类是一种用户自定义类型,声明形式:class private:;public:;protected:;无顺序关系,无顺序关系,每部分允许每部分允许出现多次出现多次C+类类公有类型成员在关键字public后面声明,它们是类与外部的接口,任何外部函数都可以访问公有类型数据和函数, 但必须通过一个对象作为对象的成员使用。C+类类私有类型成员在关键字private后面声明,只允许本类中的函数访问,而类外部的任何函数都不能访问。如果紧跟在类名称的后面声明私有成员,则关键字private可以省略。C+类类保护类型成员在关键字protected后面声明。与private类似,其差别表现在继承与派生时对
7、派生类的影响不同。C+类类class Timeprivate:/ 最好不要省略最好不要省略private int hour;/ 数据成员,表示小时数据成员,表示小时 int minute;/ 数据成员,表示分钟数据成员,表示分钟 int second;/ 数据成员,表示秒数据成员,表示秒public: void setTime(int, int, int);/ 成员函数,设置时间成员函数,设置时间 void showTime();/ 成员函数,输出时间成员函数,输出时间;例 定义类定义类Time(表示时间)。(表示时间)。私有数据成员私有数据成员hourhour、minuteminute和和s
8、econdsecond只能在类的成员只能在类的成员函数中被访问或赋值;函数中被访问或赋值;公有成员函数公有成员函数setTimesetTime、showTimeshowTime可在外部被调用,但必须通过一个可在外部被调用,但必须通过一个对象作为对象的成员使用。对象作为对象的成员使用。C+类类类的实现类的实现实质上是类的成员函数的实现,即定义类的成员函数。成员函数的定义形式与一般函数的定义形式基本相同,但必须在成员函数名前加上类名和作用域限定符(:)。成员函数的定义也可放在类体内(该函数声明之处),这时成员函数将变成内联函数。C+类类例 类Time的实现void Time:setTime(int
9、 h, int m, int s) hour=(h=0 & h=0 & m=0 & s60) ? s:0;void Time:showTime() couthour:minute:second成员名”方式访问 public 属性的成员C+类类例:类Time的使用,声明对象并设置对象属性main() Time EndTime;/ 声明对象EndTime EndTime.setTime(12, 23, 36);/ 设置对象EndTime的时间 coutThe time is:; EndTime.showTime();/ 显示对象EndTime的时间阶段课程小结理解结构化设计
10、方法与面向对象方法的区别熟悉面向对象的程序设计方法,学习用面向对象的方法设计程序 理解掌握下列定义:对象、类、封装、继承、多态性对象、类、封装、继承、多态性类的三个组成部分:类名、属性和方法类名、属性和方法理解封装与继承的意义,以及与对现实世界抽象的联系多态性及其作用。熟悉类的定义、实现和使用了解对象和类的关系阶段小结(续)例:输入任意短语或句子,计算该短语包含多少个字(word)和字符(character)。注意:输入短语时,必须在字和字之间只空一格面向过程的方法#include #include void main() char ch; int wdcount,chcount; wdcou
11、nt=1; chcount=0; printf(*:Please input any phrasen); while(ch=getche()!=r) /r表示换行 chcount+; if(ch= ) wdcount+; printf(n*:The number of word is %dn,wdcount); printf(n*:The number of char is %dn,chcount);面向对象方法#include #include class countpublic: count(); void process(); void display();private: int wd
12、count,chcount;count:count() wdcount=1; chcount=0;void count:display() printf(n*:The number of word is %dn,wdcount); printf(n*:The number of char is %dn,chcount);void count:process() char ch; cout*:Please input any phrasech; while(ch=getche()!=r) chcount+; if(ch= ) wdcount+; coutendl; void main() count A; A.process(); A.display();运行结果:运行结果:*Please input any phrase.I am a teacher*:The number of word is 4*:The number of char is 14*是一种数学思维或计算机是一种数学思维或计算机思维方法,与人们认识世思维方法,与人们认识世界的方法不同界的方法不同 *以不稳定的、多变的以不稳定的、多变的“过过程程”和和“操作操作” 为中心来为中心来构造系统构造系统 *可重用性较差可重用性较差*是建
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工班组技术培训制度
- 120院感培训制度
- 培训店长工资制度表
- 班前会教育培训制度
- 全员培训日常管理制度
- 商场网格化培训制度
- 防火岗位人员培训制度及流程
- 传染病登记报告培训制度
- 尹方小学教师培训制度
- 文化科技人员培训制度
- GB/T 15231-2023玻璃纤维增强水泥性能试验方法
- ESC2023年心脏起搏器和心脏再同步治疗指南解读
- 五年级上册道德与法治期末测试卷推荐
- 重点传染病诊断标准培训诊断标准
- 超额利润激励
- GB/T 2624.1-2006用安装在圆形截面管道中的差压装置测量满管流体流量第1部分:一般原理和要求
- 兰渝铁路指导性施工组织设计
- CJJ82-2019-园林绿化工程施工及验收规范
- 小学三年级阅读练习题《鸭儿饺子铺》原文及答案
- 六宫格数独100题
- 厨房设施设备检查表
评论
0/150
提交评论