C++内容总结
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4. 动态内存分配和释放
• 用关键字new和delete动态分配内存和释放内存。 new和delete类似于C语言中的函数malloc()和 free(),功能类似但又优于这两个函数。
• 为某类型申请空间 语法:p=new type;
指针 类型名
//申请内存空间,返回指向该内
存空间的地址。若分配失败, 则返回空指针。
6. 其他
• 出现一些新的函数,如setw()等 setw() 设置域宽,输出缺省右对齐。
例:p=new int; 说明:为整型变量分配了一块内存空间。指针 p指向该空间,即p存放的是这块空间的首地址。 比较: int a; p=&a; 但这是静态分配内存空间,a占用的空间不能随 意释放。 p=new LNode; 说明:为LNode类型的变量分配一块空间,也 就是动态生成一个LNode类型的结点。指针p指 向该结点。
//调用函数int abs(int 百度文库)
cout<<"|x2|="<<abs(x2)<<endl;//调用double abs(double x) }
5. 函数重载和运算符重载
• 运算符重载:对已有的运算符进行重新定 义,使之适用于新的数据类型,进行类似 运算。 • 运算符重载的实质就是函数重载。 • 在本书中,只有涉及到元素为记录类型时 才用到。
• 释放空间 语法:delete p; • 动态申请和释放数组 申请数组空间: p=new type[size]; 例:p=new int[3]; 释放数组空间:delete []p;
//p是指向数组的指针 //size为数组元素的个数
5. 函数重载和运算符重载
• 函数重载是指:在同一程序中可以定义多 个同名函数,它们通常具有相似的功能。 • 但这些同名函数的参数类型、参数个数、 返回值类型、函数功能可以完全不同。编 译系统将根据函数参数的类型和个数来判 断使用哪一个函数。
printf(“%d, %d, %d, %d”,i,j,m,n);
cout<<i<<“,”<<j<<“,”<<m<<“,”<<n;
//引号内部分原封不动输出到屏幕
printf(“x=%d y=%d\n”,x,y); cout<<“x=”<<x<<“ ”<<“y=”<<y<<endl; //endl相当于“\n”,表示回车换行
• 若运算符为一元运算符时,<参数表>有一个 形参;若为二元运算符,则有两个形参。
运算符重载函数的调用
采用一般使用运算符的格式: 1)一元运算符: #obj operator#(obj) 2)二元运算符: obj1#obj2
operator#(obj1,obj2)
6. 其他
• 可以把变量的类型说明靠近它使用的地方 例:for(int i=0;i<5;i++) //在使用i的地方定义它 为整型 void InitList(List& L) //形参的类型说明放在 形参表中 • 函数定义中 1) 返回的参数不必加圆括号,如 return 表达式; 2) 函数无返回值时,函数名前要加void,如 void 函数名(……)
C++优点:用cout和cin后,不需要指定格式。
2. const常量修饰符
• 用const修饰过的变量,在程序执行期间其值不会 被改变,所以可代替常量宏定义。 例:const int MaxSize=50; 可看作为 #define MaxSize 50
3. 引用变量&
• 在本书中,“引用”仅仅是用在函数定 义的形参中。它表示:在函数调用时, 系统会自动取实参的地址传给函数,所 以函数实际操作的就是实参,这样就达 到了修改实参的目的。
运算符重载规则
• 不可定义新的运算符:C++的运算符除了少 数几个之外,全部可以重载,而且只能重载 已有的运算符。 • 重载之后运算符的优先级和结合性都不会改 变,并且要保持原运算符的语法结构。 • 不能改变运算符原有的功能。
运算符重载函数的定义
• 运算符重载函数的一般定义格式如下:
<返回值类型> operator <运算符>(<参数表>) { <函数体>; }
C++内容总结
1. 输入输出语句
• cout<< 代替 printf() • cin>> 代替 scanf() 例:scanf(“%d %d”,&x,&y); cin>>x>>y; (x,y事先定义为整型) scanf(“%7.2f %d %c”,&x,&y,&z); cin>>x>>y>>z;
#include <iostream.h>
int abs(int x)
{ return x>0?x:-x; }
//形参为整型
double abs(double x) { return x>0?x:-x; }
//形参为双精度型
void main()
{ int x1=4; double x2=5.5; cout<<"|x1|="<<abs(x1)<<endl;