第1讲C与C语言的区别.ppt

上传人:本田雅阁 文档编号:3458654 上传时间:2019-08-28 格式:PPT 页数:29 大小:320.04KB
返回 下载 相关 举报
第1讲C与C语言的区别.ppt_第1页
第1页 / 共29页
第1讲C与C语言的区别.ppt_第2页
第2页 / 共29页
第1讲C与C语言的区别.ppt_第3页
第3页 / 共29页
第1讲C与C语言的区别.ppt_第4页
第4页 / 共29页
第1讲C与C语言的区别.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《第1讲C与C语言的区别.ppt》由会员分享,可在线阅读,更多相关《第1讲C与C语言的区别.ppt(29页珍藏版)》请在三一文库上搜索。

1、面向对象程序设计与 Visual C+,本课程的意义 & 未来职业,面向对象程序设计,田宜平 电话:13871053827 Email: 中国地质大学计算机学院信息所 武汉地大坤迪科技有限公司 http:/,教材: Visual C+面向对象程序设计 戴光明 李向 编著 中山大学出版社 2005-11,推荐参考教材 1. 实用Visual C+ 6.0教程 美 Jon Bates, Tim Tompkins著 何健辉 董方鹏 等译 2. C+面向对象程序设计教程 陈维兴 林小茶 编著 3. C+程序设计教程 钱能 编著 清华大学出版社,考试形式,一、交编程报告 题目不固定(三种类型) 1.

2、布置 2. 你感兴趣的 3. 你的课题中的一个问题 要求: 源程序和报告用Email交 二、平时成绩 三、笔试,面向对象程序设计的主要内容,第一部分C+语言基础知识(预备知识) 主要介绍C+语言与C语言不同的内容 第二部分面向对象程序设计(重点内容) 主要讲述面向对象程序设计的基本思想与原理 第三部分面向对象程序设计实例(实践操作 主要讲解MFCWindows编程和数据库编程等实例,第一部分 C+语言概述,1.1 C+语言的起源和特点 1.2 C+语言与C语言的关系 1.3 C+语言展望,1.1.1 C+语言的起源 1、C+语言是从C语言继承来的,主要表现在语句形式、模块化程序设计 2、C语言

3、对大而复杂的系统是力不从心的 3、80年Bell实验室改进ANSI C 产生C+语言 ( ANSL:美国国家标准研究所),1.1.2 C+语言的特点 1、C+语言是支持面向对象的设计语言 把具有共同特征和行为的实体的集合归纳成类,程序是相互联系的离散对象的集合 2、封装性:通过类,将数据和操作封装 3、继承性:原有C+代码方便移植新程序 4、多态性:相似而性质不同的操作有相同名称(如和操作有整数和与矢量和),1.2 C+语言与C语言的关系,1.2 .1 C+语言与C语言的联系 C语言的特点: 1、它是一种结构化程序设计语言 2、它可以部分代替汇编语言 3、它提供了丰富的数据类型和运算,1.2

4、C+语言与C语言的关系,1.2 .2 C+语言与C的主要区别 1、C+语言引进了类的概念,而C语言的结构只是数据的集合 2、 C+语言沿用了C语言的结构 3、 C+语言新增加的关键字 class private, protected ,public this new delete friend operate inline virtual,1.2 C+语言与C语言的关系,1.2 .3 C+语言与C的细小区别 1、C+语言保留了C的注释 /* */ 增加行注释/ 2、const 关键字 #define Number 1 const Number 1 它们功能相同,但后者编译要进行严格的类型检查。

5、在C+都用const,例如:C+: const int Number=1,n=10; void main() int a; const int *p; p= /正确 ,常指针 使用const修饰指针时,由于const的位置不同,而含意不同。下面举两个例子,说明它们的区别。,(1).若声明指针常量,则指针pn所指向的变量是可以更新的,不可更新的是常量指针pn所指的方向 。 例: int n1=3; int const n2=5; int *const pn= /正确,(2).若声明为指向常量的指针,则指针pn所指向的常量是不可以更新的,但可更新的是指针pn所指的方向 。,例: int n1=3;

6、 int const n2=5; const int *pn= /错误,1.2 .3 C+语言与C的细小区别 3、构造变量的说明不必在之前加struct 例如: C: struct Astruct aS; (结构) union Aunion aU;(联合) enum Bool aB;(枚举) C+: Astruct aS; (结构) Aunion aU;(联合) Bool aB;(枚举) 4、变量的说明可放在程序任何位置 例如(for int i=0;i100;i+),1.2 .3 C+语言与C的细小区别 5、域运算符: 有全局作用域,文件作用域,类作用域,函数作用域。通过“:”域限定符标识。

7、 例:int i; main() int i; i=5; /对局部量i :i=10; /对全局量i /“:”域限定符。,1.2 .3 C+语言与C的细小区别 6、输入/输出 C+:couta; C: scanf(“%d“, C+:#include C: #include,1.2 .3 C+语言与C的细小区别 7、动态单元 C:#include float*p; p=(float*)malloc(sizeof(float); free p; q=(int*)calloc(10,sizeof(int); C+: float*p;p=new(float); delete p; q=new int10

8、;,#include /例子example1.cpp void main() int i,m,len; int *p; coutm; p=new intm; if(p=NULL) coutpi; len=0; cout“input data“endl; for(i=0;im;i+)len+=pi*pi; cout“sqr_sum=“lenendl; delete p;,1.2 .3 C+语言与C的细小区别 8、引用与引用调用 引用为一个对象产生第二个名称,引用本身不是一个变量,只是一个变量的别名。定义如下: 类型说明 我们称A是B的引用。,引用的一些规则如下: (1)引用被创建的同时必须被初始

9、化(指针则可以在任何时候被初始化)。 (2)不能有NULL引用,引用必须与合法的存储单元关联(指针则可以是NULL)。 (3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。 变量引用:以下示例程序中,k被初始化为i的引用。语句k = j并不能将k修改成为j的引用,只是把k的值改变成为6。由于k是i的引用,所以i的值也变成了6。 int i = 5; int j = 6; int ,按引用传递就是封装了的按指针传递! int test(int 函数里面就可修改原变量a1和c的值. 只不过在test()中用a=20就可以修改a1的值,而需要*b=30 修改c的值!,会发现

10、“引用传递”的性质象“指针传递”,而书写方式象“值传递”。实际上“引用”可以做的任何事情“指针”也都能够做,为什么还要“引用”这东西? 答案是“用适当的工具做恰如其分的工作”。 指针能够毫无约束地操作内存中的如何东西,尽管指针功能强大,但是非常危险。就象一把刀,它可以用来砍树、裁纸、修指甲、理发等等,谁敢这样用? 如果的确只需要借用一下某个对象的“别名”,那么就用“引用”,而不要用“指针”,以免发生意外。,1.2 .3 C+语言与C的细小区别 9、函数重载-静态多态性 函数的重载是面向对象程序设计的多 态性的实现,重载使得: 在同一个函数名下,有该函数的多个具体实现; 不同的具体实现有不同参数

11、列表; 在函数被调用时,编译器通过对函数的实参和形参进行最大限度的匹配,选择一个该函数的具体实现。,比方说加法,加法可以用于整数和有理数等 在C+里可以用两个函数来实现这个目的。 int intadd( int v1 , int v2 ) return v1+v2; float floatadd( float v1 , float v2 ) return v1+v2; ,使用的方式是这样的 int ia = 1 , ib = 2 , iab = 0; float fa = 1.0 , fb = 2.0 , fab = 0.0; iab = intadd( ia ,ib ); fab = flo

12、atadd( fa , fb ); 这样看起来很不直观,可读性不强,我们的目的是让人一眼就可以看出是在做相加运算。,两个函数的返回值和参数并不一样,这样就可以区别开两个不同的行为。这个特性可不可以利用呢?答案是可以,C+贴心的为我们做好了一切。原理很简单,将函数的返回值和参数用一种可逆的编码方法变成一个字符串,安插在函数名后面,编译器向用户屏蔽这一切,用户可以用同一个名字来使用不同的函数。,就是这样 int add( int v1 , int v2 ) return v1+v2; float add( float v1 , float v2 ) return v1+v2; int ia = 1 , ib = 2 , iab = 0; float fa = 1.0 , fb = 2.0 , fab = 0.0; iab = add( ia ,ib ); fab = add( fa , fb );,1.3 C+语言展望 便于编制大型的复杂的软件 面向对象的思想是程序设计思想的革命,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1