- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 面向对象程序设计的概念.ppt
第二章 面向对象程序设计的概念 C与C++的差别 引用 类和对象 构造函数和析构函数 C++对C的改进 一般语法的改进 指针和引用 函数的改进 C++的输入和输出 #include “stdio.h” printf(“hello c”); scanf(“%d”,sum); printf(“sum is %d”,sum); 注释 /*.......*/ // 变量定义 变量定义可以位于程序中的任何地方 符号常量的定义 #define NULL 0 #define Length 100 #define PI 3.1415926 const int NULL=0 const int Length =100 const double PI=3.1415926 强制转换类型 C的强制类型转换法 (类型名)表达式 函数表示法(仅限简单类型) 类型名(表达式) int i=int(1.35); 结构体与枚举类型的用户标识名 enum traffic {red,green,yellow}; struct student{ int num; char name[20];}; traffic Light; student stu1; 动态内存分配 new int*p,*q,*s; p=new int; s=new int(200); q=new int[10]; delete delete p; delete[] q; 引用类型的概念 引用是指给对象的地址取个别名,对引用的改动则是对目标的改动。 int int1; int rint=int1; 引用不是值,不占有存储空间 引用必须初始化,并且不再指向其他不同的变量 什么能被引用 double rr=1; double temp; temp=double(1); double rr=temp; 指针变量的引用 int *a; int*p=a; int b=8; p=b; 什么不能被引用 void a=3; int a[10]; intra[10]=a; intra=int; intri=NULL; 引用作为函数参数--地址传递 指针的代码可读性差,指针作为参数传递,用户调用知道函数是如何工作的。 解决大对象值传递会产生副本的问题 程序清单2-3 引用作为函数参数--地址传递 存在的问题 引用隐藏了函数所使用的参数传递的类型,应避免重载匹配错误 void fn(int s); void fn(intt); 用const 限定引用 double fn(const double pd) 函数原型 例: int func(int,int); C++ 要求所有函数都有函数原型 程序的顶部 头文件 C++提供更强的类型检查,允许编译程序对下列情况报错误信息: 被调用函数参数类型定义和类型转换非法 函数的参数个数不相符 函数不能返回预定的数据类型 内置函数inline #include iostream.h void main() { int a(8),b(16),c; inline int max(int,int); c=max(a,b); cout”c=”cendl; } int max(int x,int y); { cout”c=”cendl; } 内置函数inline 实质: 编译器为inline 函数创建代码,在每次碰到该函数的调用都用相应的一段代码替换 说明: 关键字inline一般放在函数声明的前面 inline放在函数定义的前面时,函数定义要在调用函数的前面 限制: 不能含有switch,while等复杂的结构控制语句,递归函数不能被用作inline函数 inline 与宏定义 宏所作的是机械代换,在参数为表达式时会产生不可预知的错误 宏不能作类型检查 #define f(m) m*m 宏定义调用:f(5+5) 5
文档评论(0)