欢迎来到天天文库
浏览记录
ID:47003439
大小:236.16 KB
页数:46页
时间:2019-12-03
《面向对象程序设计的概念》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第二章面向对象程序设计的概念C与C++的差别引用类和对象构造函数和析构函数C++对C的改进一般语法的改进指针和引用函数的改进C++的输入和输出#include“stdio.h”printf(“helloc”);scanf(“%d”,&sum);printf(“sumis%d”,sum);#include”iostream.h”cout<<“helloc”cin>>sum;cout<<“sumis”<2、10;i++){intc;c*=2;ints;……}一般语法的改进符号常量的定义#defineNULL0#defineLength100#definePI3.1415926constintNULL=0constintLength=100constdoublePI=3.1415926一般语法的改进强制转换类型C的强制类型转换法(类型名)表达式函数表示法(仅限简单类型)类型名(表达式)inti=int(1.35);一般语法的改进结构体与枚举类型的用户标识名enumtraffic{red,green,yellow};structstudent{intnum;charna3、me[20];};trafficLight;studentstu1;!不必在一个结构体名之前加struct,不用在一个枚举类型名之前加关键字enum。一般语法的改进动态内存分配newint*p,*q,*s;p=newint;s=newint(200);q=newint[10];deletedeletep;delete[]q;一般语法的改进#include“iostream.h”voidmain(){int*p;p=newint;*p=10;cout<<*p;deletep;}引用类型的概念引用是指给对象的地址取个别名,对引用的改动则是对目标的改动。intint1;4、int&rint=int1;引用不是值,不占有存储空间引用必须初始化,并且不再指向其他不同的变量指针和引用什么能被引用double&rr=1;doubletemp;temp=double(1);double&rr=temp;指针变量的引用int*a;int*&p=a;intb=8;p=&b;指针和引用什么不能被引用void&a=3;inta[10];int&ra[10]=a;int&ra=int;int&ri=NULL;指针和引用引用作为函数参数--地址传递指针的代码可读性差,指针作为参数传递,用户调用知道函数是如何工作的。解决大对象值传递会产生副本的问题程序清单5、2-3指针和引用引用作为函数参数--地址传递存在的问题引用隐藏了函数所使用的参数传递的类型,应避免重载匹配错误voidfn(ints);voidfn(int&t);用const限定引用doublefn(constdouble&pd)指针和引用函数原型例:intfunc(int,int);C++要求所有函数都有函数原型程序的顶部头文件C++提供更强的类型检查,允许编译程序对下列情况报错误信息:被调用函数参数类型定义和类型转换非法函数的参数个数不相符函数不能返回预定的数据类型函数的改进内置函数inline#includevoidmain(){i6、nta(8),b(16),c;inlineintmax(int,int);c=max(a,b);cout<<”c=”<7、,在参数为表达式时会产生不可预知的错误宏不能作类型检查#definef(m)m*m宏定义调用:f(5+5)5+5*5+5函数的改进函数的默认参数可以在函数声明时,对参数赋与默认值,调用没有给出实参时,就使用默认值。voiddelay(intloops=1000);voiddelay(intloops){if(loops==0)return;for(inti=0;i8、分配实参。
2、10;i++){intc;c*=2;ints;……}一般语法的改进符号常量的定义#defineNULL0#defineLength100#definePI3.1415926constintNULL=0constintLength=100constdoublePI=3.1415926一般语法的改进强制转换类型C的强制类型转换法(类型名)表达式函数表示法(仅限简单类型)类型名(表达式)inti=int(1.35);一般语法的改进结构体与枚举类型的用户标识名enumtraffic{red,green,yellow};structstudent{intnum;charna
3、me[20];};trafficLight;studentstu1;!不必在一个结构体名之前加struct,不用在一个枚举类型名之前加关键字enum。一般语法的改进动态内存分配newint*p,*q,*s;p=newint;s=newint(200);q=newint[10];deletedeletep;delete[]q;一般语法的改进#include“iostream.h”voidmain(){int*p;p=newint;*p=10;cout<<*p;deletep;}引用类型的概念引用是指给对象的地址取个别名,对引用的改动则是对目标的改动。intint1;
4、int&rint=int1;引用不是值,不占有存储空间引用必须初始化,并且不再指向其他不同的变量指针和引用什么能被引用double&rr=1;doubletemp;temp=double(1);double&rr=temp;指针变量的引用int*a;int*&p=a;intb=8;p=&b;指针和引用什么不能被引用void&a=3;inta[10];int&ra[10]=a;int&ra=int;int&ri=NULL;指针和引用引用作为函数参数--地址传递指针的代码可读性差,指针作为参数传递,用户调用知道函数是如何工作的。解决大对象值传递会产生副本的问题程序清单
5、2-3指针和引用引用作为函数参数--地址传递存在的问题引用隐藏了函数所使用的参数传递的类型,应避免重载匹配错误voidfn(ints);voidfn(int&t);用const限定引用doublefn(constdouble&pd)指针和引用函数原型例:intfunc(int,int);C++要求所有函数都有函数原型程序的顶部头文件C++提供更强的类型检查,允许编译程序对下列情况报错误信息:被调用函数参数类型定义和类型转换非法函数的参数个数不相符函数不能返回预定的数据类型函数的改进内置函数inline#includevoidmain(){i
6、nta(8),b(16),c;inlineintmax(int,int);c=max(a,b);cout<<”c=”<7、,在参数为表达式时会产生不可预知的错误宏不能作类型检查#definef(m)m*m宏定义调用:f(5+5)5+5*5+5函数的改进函数的默认参数可以在函数声明时,对参数赋与默认值,调用没有给出实参时,就使用默认值。voiddelay(intloops=1000);voiddelay(intloops){if(loops==0)return;for(inti=0;i8、分配实参。
7、,在参数为表达式时会产生不可预知的错误宏不能作类型检查#definef(m)m*m宏定义调用:f(5+5)5+5*5+5函数的改进函数的默认参数可以在函数声明时,对参数赋与默认值,调用没有给出实参时,就使用默认值。voiddelay(intloops=1000);voiddelay(intloops){if(loops==0)return;for(inti=0;i8、分配实参。
8、分配实参。
此文档下载收益归作者所有