第十二章C与C+ 第十二章C与C++ 12.1C转入C++时不需改变的内容 12,2C转入C++的一些与类无关的新特性 123C++的核心新特性—类 124面向对象程序设让 BACK
第十二章 C与C++ 第十二章 C与C++ 12.1 C转入C++ 12.2 C转入C++的一些与类无关的 新特性 12.3 C++的核心新特性—— 12.4 面向对象程序设计
第十二章C与C+ 121C转入C++时不需改变的内容 (1)各种数据类型变量的定义与使用,函数、数组、 指针、文件等基本知识 (2)许多有效的算法。 (3)程序的基本调试思想方法 (4)程序设计中的自顶向下的总体思想 (5)程序段中具体的最小模块仍然由顺序、分支、循环 种基本模块组成
第十二章 C与C++ 12.1 C转入C++时不需改变的内容 (1) 各种数据类型变量的定义与使用, 函数、 数组、 指针、文件等基本知识。 (2) 许多有效的算法。 (3) 程序的基本调试思想方法。 (4) 程序设计中的自顶向下的总体思想: (5) 程序段中具体的最小模块仍然由顺序、 分支、 循环 三种基本模块组成
第十二章C与C++ 122C转入C++的一些与类无关的新特性 122.1C转入C++时需改变的内容 1.C++中不能再作为标识符的关键字 2.函数声明 3.函数声明的形式
第十二章 C与C++ 12.2 C转入C++的一些与类无关的新特性 12.2.1 C转入C++时需改变的内容 1. C++中不能再作为标识符的关键字 2. 函数声明 3
第十二章C与C++ 1222C+中独有的与类无关的部分新特性 局部变量说明语句的位置 id maino /*程序的其它部分(包括执行语句)* nt count=0;∥变量 count说明 while(+ count<=100)∥变量 count使用 /*后续程序*
第十二章 C与C++ 12.2.2 C++中独有的与类无关的部分新特性 1. 局部变量说明语句的位置 如: void main() { …… /* 程序的其它部分(包括执行语句) */ int count=0; // 变量count while(++count<=100) // 变量count {……} …… /* 后续程序 */ }
第十二章C与C++ 2.注释符 C++中可以使用两种注释符(如上例),比C多一种注 释符“∥〃,其功能是其后至行末为注释部分。程序中 可灵活选用
第十二章 C与C++ 2. C++中可以使用两种注释符(如上例),比C多一种注 释符“//” , 其功能是其后至行末为注释部分。程序中 可灵活选用
第十二章C与C++ 3.范围分解符 C中,当全局变量和某函数内的局部变量同名时,该 函数对全局变量起屏蔽作用,即在该函数内无法访问此全 局变量,而在C++中,只要在其前使用范围分解符即可访 问同名的全局变量。例如 float n VO Did maino fint n; ∥给局部变量n赋值 n=553;∥/给全局变量n赋值
第十二章 C与C++ 3. 范围分解符:: C中,当全局变量和某函数内的局部变量同名时, 该 函数对全局变量起屏蔽作用,即在该函数内无法访问此全 局变量,而在C++中,只要在其前使用范围分解符即可访 问同名的全局变量。 例如: float n; void main() {int n; n=5; // 给局部变量n :: n=5.53; // 给全局变量n …… }
第十二章C与C++ 4.内联函数 内联函数的特性类似于宏。 C中,在定义了宏# define abs(n)(n)<0?-(n):(n)之 后,程序每调用一次宏ABS,替换宏名的字符串就展开并 插入在调用处一次。C中的函数调用就不是这种展开方式, 而是程序转入子函数执行,执行完后再返回主调函数,每个 函数只有一段代码。在C++中,可以定义类似于宏的内联函 数,关键字是 inline,如定义求绝对值的内联函数如下: inline int Abs(int n) i return n<0-n: n;)
第十二章 C与C++ 4. 内联函数的特性类似于宏。 C中, 在定义了宏 #define ABS(n)((n)<0?-(n): (n)) 之 后, 程序每调用一次宏ABS,替换宏名的字符串就展开并 插入在调用处一次。 C中的函数调用就不是这种展开方式, 而是程序转入子函数执行,执行完后再返回主调函数,每个 函数只有一段代码。在C++中,可以定义类似于宏的内联函 数,关键字是 inline,如定义求绝对值的内联函数如下: inline int Abs(int n) { return n<0?-n: n; }
第十二章C与C++ 5.重载函数 C+中可以在同一程序中多次定义同名函数,只要各 函数间的参数个数或类型不同,例如: int Abs(int n) ireturn n<0?-n:n;) float abs( float n) i return n<0?-n:n;)
第十二章 C与C++ 5. C++中可以在同一程序中多次定义同名函数, 只要各 函数间的参数个数或类型不同, 例如: int Abs(int n) { return n<0?-n: n; } float Abs(float n) { return n<0?-n: n; }
第十二章C与C++ 在同一范围内定义同名函数称为重载函数。编译器根据函数 调用时具体的实参的个数和类型自动调用匹配的重载函数版本 例如: int Abs(int n) float Abs( float n) void maino fint i float f FAbs(5) ∥调整型的求绝对值函数 fAbs(-25); ∥调实型的求绝对值函数
第十二章 C与C++ 在同一范围内定义同名函数称为重载函数。 编译器根据函数 调用时具体的实参的个数和类型自动调用匹配的重载函数版本。 例如: int Abs(int n); float Abs(float n); void main() {int i; float f; i=Abs(5); // f=Abs(-2.5); // …… }
第十二章C与C++ 6.new和 delete操作符 以下为动态开辟内存块的例子 struct node char name node *next char "pchar ∥/定义三种类型的指针变量 It pint struct node * pnode
第十二章 C与C++ 6.new和delete操作符 以下为动态开辟内存块的例子: struct node { char *name; int salary; node *next; } char *pchar; // 定义三种类型的指针变量 int *pint; struct node *pnode;