《精编》用面向对象方法与C描述

上传人:tang****xu4 文档编号:133880956 上传时间:2020-05-31 格式:PPT 页数:107 大小:337KB
返回 下载 相关 举报
《精编》用面向对象方法与C描述_第1页
第1页 / 共107页
《精编》用面向对象方法与C描述_第2页
第2页 / 共107页
《精编》用面向对象方法与C描述_第3页
第3页 / 共107页
《精编》用面向对象方法与C描述_第4页
第4页 / 共107页
《精编》用面向对象方法与C描述_第5页
第5页 / 共107页
点击查看更多>>
资源描述

《《精编》用面向对象方法与C描述》由会员分享,可在线阅读,更多相关《《精编》用面向对象方法与C描述(107页珍藏版)》请在金锄头文库上搜索。

1、1 清华大学计算机系列教材殷人昆陶永雷谢若阳盛绚华编著 数据结构 用面向对象方法与C 描述 C 语言的概要类 对象 构造函数与析构函数输入 输出函数 参数传递与函数返回值函数名重载与操作符重载动态存储分配友元函数与内联函数结构 联合与类 编程简介 C C 语言概要 C 源于C语言 1970年 两位程序员BrianKernighan和DennisRitchie首创了一种新的程序设计语言 取名为C语言 设计C语言的最初目的是编写操作系统 由于其简单 灵活的特点 C语言很快就被用于编写各种不同类型的程序 从而成为世界上最流行的语言之一 C语言是一个面向过程的语言 随着软件开发技术的进步 程序员们最终

2、发现 把数据和施加在其上的操作结合起来 会得到更易于理解的程序 由此产生了面向对象的程序设计思想 1980年代初 美国AT T贝尔实验室的BjarneStroustrup设计并实现了C语言的扩充 改进版本 C 语言诞生了 C 改进了C的不足之处 增加了对面向对象的程序设计的支持 在改进的同时 保持了C的简洁性和高效性 一个简单的C 程序 一个简单的C 程序 该程序在标准输出设备上输出一句问候语 hello includeintmain cout hello return0 正常返回 这是一个只包含一个函数的程序 程序的基本元素是数据说明 函数和注释 注释 C 的第一次注释格式源于C语言 注释开

3、始于 结束于 在两者之间的任何内容 包括换行符都被编译器忽略 注意注释符对不可以嵌套 第一种注释符以 开头 它是单行注释符 在它同一行右侧的任何信息都将被认为是注释而由编译器略去 注意 上面两种注释符的两个标志符 和 和 之间不可以分开 include语句 C 将一些标准函数和变量说明放在头文件中 头文件中保存所有与标准函数或变量相关的信息 为了使用头文件中定义的变量和函数 必须将相应的头文件include进主程序 作为程序的一部分进行编译 用户也可以定义自己的头文件 把一些相关的函数和变量组织在一个文件中 当另外的程序要用到这些函数和变量时 可以将该文件作为头文件include进来 incl

4、ude指令有两种格式 include include 头文件名 第一种文件名在中指定 表示该文件存放于系统设定的子目录中 这类文件一般是由系统给出的 并已经过编译 第二种文件名在 中给出 表示该文件存放在当前目录中 这些头文件通常由用户自己给出 头文件中可包含其它头文件 即 include可以直接嵌套 C 源程序中还可包括各种编译命令 这些命令被称为预处理指令 常用的除 include外 还有条件预处理指令 if ifndef和 endif等和宏替换指令 define 预处理命令对编译器起作用 它指示编译器在正式编译前做一些预先处理 include命令将指示编译器将其后所跟的文件内容插入到当前

5、文件中 define定义一个常量或替换宏 它指示编译器在使用该常量或宏的地方替换为其实际内容 if ifndef和 endif指示编译器做条件编译 define用来定义一个常量或替换宏 如 definesize20 定义一个常量size 其值永远为20 defineMAX x y x y y x 求x y中的最大值经过预编译后 程序中所有出现size和MAX x y 之处都会被20和 x y y x 代替 如 intarray size inti MAX 4 55 经预编译后会变为intarray 20 inti 4 55 55 4 函数原型 下面的程序给出了典型的C程序结构 它是 Hello

6、 world 程序的变型 这个程序由三个文件组成 File hello h char hello File hello c include 包括sprintf 的原型 include 包括malloc 的原型 include 包括strlen 的原型 include hello h 包括hello 的原型 char hello name char name char value 返回串 Hello name value char malloc 9 strlen name sprintf value Hello s name returnvalue File main c include 包括p

7、rintf 的原型 include hello h 包括hello 的原型 main argc argv intargc char argv printf s hello world 头文件名字的后缀用 h 表示 程序文件名字的后缀用 c 表示 hello h 包含hello函数的原型 main函数可通过 include 定向到该原型的定义文件 取得对原型的访问性 hello c 这是hello函数的定义文件 它通过一个string类型的形式参数接受需要打印的串 返回一个string类型的值作为打印串 返回类型必须与在 include定向的 h 文件中所给出的原型的类型匹配 main c 这是

8、打印 Hello world 的主程序 它构造和返回一个欢迎词字符串 其结果通过函数printf打印出来 C把函数和数据定义放在后缀为 c 的代码文件中 在各代码文件中使用后缀为 h 的include文件 定义对其他各模块的调用接口 C 的函数特征 特征是函数参数表的描述 利用特征信息可进行严格的类型检查 它允许编译器检验实际参数的数目是否正确 对应的形参和实参是否相容 函数返回的类型与函数调用的环境是否相容 它克服了在许多C程序的开发中 由于在C原型中没有定义参数的类型和数量 而造成的实参和形参之间不匹配 函数返回类型与使用之间不匹配等许多缺陷 现用C 语句改写前面的C程序 C 程序在 h

9、文件中对hello 使用了函数特征 对于hello 的原型 不要求形式参数的名字出现在特征中参数的数目和类型 以及返回类型 都完整地在函数说明中定义C 允许在函数说明时 在括号内直接声明形式参数的类型 File hello h char hello char File hello cpp include 包含函数sprintf 的原型 include 包含函数strlen 的原型 include hello h 包含函数hello 的原型char hello char name char value newchar 9 strlen name sprintf value Hello s nam

10、e returnvalue File main cpp include 说明输出流对象cout include hello h 包含函数hello 的原型main intargc char argv cout hello world C 的数据声明 C 的数据声明将数据名与数据类型联系起来 其主要形式有 常数值 如25 13 4 valueis 它们的内容保持不变 常量 数据声明时在变量名前冠以保留字const 如constintMAX 500 可定义一个常量 其内容在声明时给定 在声明它的程序运行时内容再赋值无效 变量 数据类型的实例 在程序执行时可以改变其内容 C 提供两大类数据类型 基本

11、数据类型和复合数据类型 基本数据类型有5种 整型 int 浮点型 float 字符型 char 双精度浮点型 double 和无值 void 复合数据类型包括结构 struct 联合 union 位域 枚举 enum 类 class 和用户自定义类型 此外还有由基本数据类型和复合数据类型引申而来的数据类型 包括数组 指针 引用等 枚举 是声明一个整型常数序列的方式 例如 在程序开头做如下声明enumBoolean FALSE TRUE 则建立一个Boolean类型 FALSE TRUE都是Boolean类型整型常数 默认值0和1 指针 存放对象的存储地址 例如inti 5 int np np为

12、一个指向整型量的指针np k中存入np所指地址i的内容 引用 它用来给一个对象提供一个替代的名字 例如inti 5 int此时 j是一个引用类型 它代表i的一个替代名 当i的值改变时 j的值也跟着改变 当printf语句执行后 打印出的i和j的值都是7 C 的作用域 在C 中 每个变量都有一个作用域 区分一个变量时要同时考虑变量名及其作用域 在函数定义中声明的变量 仅能在该函数内部有效使用在类定义中声明的变量 仅能在该类内部有效使用在一个段中声明的名字 也仅能在该段及其子段中有效使用 在整个程序各处都能访问的变量叫做全局变量 如果一个全局变量在文件1中声明 在文件2中使用 那么在文件2中必须使

13、用保留字extern对该变量进行声明 如果在构成一个程序的两个文件中分别声明了两个同名的全局变量 这两个变量分别代表两个不同实体 此时需在两个文件中分别使用保留字static对变量进行声明 如果一个段中的局部变量与一个全局变量同名 且还要在此段中使用该全局变量 此时需利用域操作符 访问该全局变量 表达式与操作符 表达式是用来说明简单计算的 C 中的表达式由操作数和操作符组成 它将操作符施加于操作数 最终得到一个结果 结果的数据类型由参加运算的数据类型决定 aa b c 2002 R x y a b 其中操作符执行的先后顺序由它们的优先级和结合性决定 C 提供了很多预定义的操作符 程序员也可以重

14、新定义这些操作符 算术操作符 其中 优先于 括号用来改变计算顺序 计算时 先计算括号内表达式的值 再将计算结果与括号外的数一起计算 如 4 1 2 4 3 12取模操作符 用于计算两整数相除后得到的余数 如 22 7 1 注意 只能用于整数相除 不能对浮点数操作 赋值操作符 将其右侧的表达式求出结果 赋给其左侧的变量 例如 intValue Value 2 3 4 赋值表达式运算的结果是右运算元的值 而结果类型是左运算元的数据类型 例如 Value 2 8 4 结果为11 而不是11 2可以连续赋值 但必须保证各运算元的类型相同 它的处理结果是每个运算元的对象值都为最右侧的运算元值 例如 in

15、ti j i j 0 i j都赋为0 复合操作符 加a b等价于a a b减a b等价于a a b乘a b等价于a a b除a b等价于a a b取模a b等价于a a b左移一位a b等价于a a b按位与a b等价于a a b按位异或a b等价于a a b按位或a b等价于a a b 自增 自减操作符 自增 自减 a 等价于a a 1a 等价于a a 1自增 自减符号既可位于变量的前面 也可位于变量的后面 前缀 表示先将其后的变量值增1 然后将增1后的变量参与表达式运算 而后缀 表示将其前面的变量先参与表达式运算 然后变量本身增1 在单独作为一个表达式时 a和a 效果一样 都是将变量a自增

16、1 自减操作符含义类似 若自增 自减 符作为一个复杂表达式的一部分时 如 a b和 a b效果就不一样 在a b初值均为1的条件下结果不同 条件操作符 条件操作符是C 中惟一的具有三个运算元的操作符 其形式为 表达式1 表达式2 表达式3它的运算方式为 先计算表达式1的值 如果其值为非零 true 则表达式2的值就是整个表达式的最终结果 否则表达式3的值就是整个表达式的值 常见的一个例子为 defineMIN x y x y x y 上例定义了一个求两个数x和y中的最小值的宏 其中决定哪一个是最小值用了条件操作符 语句 语句是C 程序中最小的可执行单元 一条语句由一个分号结束 语句可以是简单语句 也可以是复杂语句 intradius 是声明语句 circum 2 PI radius 是表达式语句 它由一个表达式后接一个分号形成 cout Value 等都是简单语句 这些语句告知计算机该如何定义变量以及如何执行程序 除简单语句外 C 还定义了一些可以控制程序执行流程的语句 这些语句提供对控制流的分支和循环功能 C 中 语句缺省都是顺序执行 如果碰到分支或循环语句 顺序执行的规则就要改变

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

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