①
1.标准C++规定main函数必须声明为int型
2.输出 cout 输出流对象 << 插入运算符
输入 cin 输入流对象 >> 提取运算符
用到头文件 iostream (C++标准要求,由系统提供的头文件不带后缀.h,由用户自己编制的头文件可以有后缀.h)
同时要用到 using nanespace std;
endl 换行
3.system(“pause”);//防止程序结果一闪而过,以便查看某些程序结果
4.一个类class是由一批数据以及对其操作的函数组成的
类可以体现数据的封装性和信息隐蔽
②
1.setw 设置指定输出所占列数
如setw(5)是作用是为其后面一个输出项预留5列的空间,如果输出数据项的长度不足5列,则数据向右对其,若超过5列则按实际长度输出
需要头文件 iomanip
2.#define 定义符号常量 (只是在编译时进行字符置换)
const 定义常变量,程序运行期间变量的值是固定的,不能改变
3.在函数调用前必须对所调用的函数作函数原型声明
目的:使编译系统对函数调用的合法性进行严格的检查,尽量保证程序的正确性
在编译时只检查参数类型,而不检查参数名
函数类型 函数名(参数表);
Int max(int x, int y); //参数表中包括参数类型和参数名
Int max(int, int); //参数表中只包括参数类型、不包括参数名
4.函数的重载
C++允许在同一个作用域中用同一函数名定义多个函数,这些函数的参数个数和参数类型不同,这些同名的函数用来实现不同的功能
重载函数的参数个数或类型必须至少有其中之一不同
函数返回类型可以相同,也可以不同
5.函数模板
template <typename T>
通用函数定义
或
template <class T>
通用函数定义
类型参数可以不只一个,根据需要 确定个数。如:
template<typename T1,typename T2>
6.有默认参数的函数
可以给形参一个默认值,实参与形参的结合是从左至右的顺序进行的,因此指定默认值的参数必须放在形参列表中的最右端,否则出错
如果函数的定义在函数调用之前,则应在函数定义中给出默认值
一个函数不能既作为重载函数,又作为有默认参数的函数
7.变量的引用
int a;
int &b=a; //b是a的“引用”,即b是a的别名
&是“引用声明符”
对变量声明的一个引用,并不另开辟内存单元,吧b和a都都代表同一变量单元
在声明一个引用时,必须同时使之初始化,即声明它代表哪一个变量
当声明一个变量的引用后,在本函数执行期间,该引用一直与其代表的变量相联系,不能再作为其他变量的别名
当&a的前面有类型符时(如int &a=b),它必然是对引用的声明;如果前面没有类型符(如p=&a),此时的&是取地址符
对引用的初始化,可以用一个变量名,也可以用另一个引用。如:int a=3;int &b=a; int &c=b;
注意:Ⅰ)不能建立void类型的引用
Ⅱ)不能建立引用的数组
Ⅲ)可以将变量的引用的地址赋给一个指针,此时指针指向的是原来的变量
Ⅳ)可以建立指针变量的引用,如:int i=5; int *p=&i;int* &pt=p;结果:*pt=5
Ⅴ)可以用const对引用加以限定,不允许改变引用的值,如:int i=5;const int &a=i; a=3;错误
但可以改变原变量的值,i=2;合法 结果:i=2,a=2
Ⅵ)可以用常量或表达式对引用进行初始化,但此时必须用const作声明。如:int i=5; const &a=i+3;
(相当于int t=i+3;const int &a=t;)
用这种办法不仅可以用表达式对引用进行初始化,还可以用不同类型的变量对之初始化(要求能赋值兼容的类型)。如:double d=3.14;const int &a=d;合法
但 double d=3.14; int &a=d;错误
8.内置函数(内嵌函数/内联函数)适用于规模很小频繁使用函数
指定内置函数,在函数首行的最左端加一个关键字inline
9.作用于运算符 ::
::a表示全局作用域中的变量a
10.字符串变量 string
头文件 string
赋值: string=“china“;正确
char str[10]; str=“china”;错误
str2=str1;正确,且str2和str1的长度不必相同
输入输出:cin >> str1; cout << str2;
函数运算:Ⅰ)复制 strcpy(str2,str1);即str2=str1;
Ⅱ)字符串连接用+,str=str1+str2;
Ⅲ)字符串比较直接用关系运算符
字符串数组中只包含字符串本身的字符而不包括“\0”
11.动态分配/撤销内存的运算符 new/delete
new 类型 [初值];
delete []指针变量;
delete p;
delete []pt; //在指针前面加一对方括号,表示对数组空间的操作