1.内置函数inline,编译时将所调用的函数代码直接嵌入到主调函数中。可以减少运行时间,却增加目标程序的长度,因此,内置函数中不能包括复杂的控制语句(循环、switch、递归、if嵌套等)。
2.函数重载overload
函数名相同,但形参的个数、类型、顺序不同。
3.函数模板
template <class T> 或 template <typename T>
例如:
template <class T>
T max(T a, T b, T c)
{
if(a<b)
{
a=b;
}
if(a<c)
{
a=c;
}
return a;
}
4.输出7位小数
float x=1.1111111111111111111;
cout<<setiosflags(ios::fixed)<<setprecision(7);
cout<<x<<endl;
5.自动变量(指一般的变量)
auto int a=3;或int a=3;
函数调用结束时自动释放这些空间。
6.静态变量
static int a=3;
函数调用结束时保留其空间,下一次调用时开始其值为上一次调用结束时的值。
7.寄存器变量(无用)
register int i=1;
适用于使用频繁(如执行10000次循环)的变量。但程序中定义寄存器变量只是建议性(非强制性的)。当今的系统能自动识别一些使用频繁的变量,因此用register几乎没有用到。
8.外部变量
8.1单文件时,可以提前声明
void main()
{
extern int a,b;
cout<<max(a,b);
}
int a=1,b=2;
int max(int x,int y)
{
......
}
8.2多文件时
注意:若全局变量加上static,则不能被外部文件所引用。
file1.cpp
extern int g_nA,g_nB;
void main()
{
cout<<a<<b;
}
file2.cpp
int g_nA=3,g_nB=4;//全局变量
....
9.内部函数(或静态函数)
只作用于当前文件
static int fun(int a)
10.外部函数
extern int fun(int a)注:可以省略extern
11.条件编译
11.1
#ifdef 标识符
程序段
#else
程序段
#endif
11.2
#if 表达式
程序段
#else
程序段
#endif
12 类
12.1用C++开发的时候,用来做基类的类的析构函数一般都是虚函数