内联函数
内联函数降低时间复杂度,利用空间换时间。在函数返回类型前加inline,即为内联函数,在类里定义成员函数即自动变为内联函数。
限制:
- 含有static类型变量的函数
- 递归函数
- 有循环或switch goto;
函数原型
函数原型:有类型个数次序,缺省值(即当为输入形参时默认取值)
重载函数
重载函数:名字共享,通过参数类型不同来分别不同的重载函数。
new与delete
C中用malloc动态分配内存,c++中还可以用new分配内存。
单个变量申请:new +类型名+初始值(可有可无);
p=new int; //申请内存,赋地址指针
p=new int(100); //同时初始化值
申请数组:new+类项目+元素个数(不能初始化);
p=new int[10];
delete:
delete +指针(单个) delete +[]指针(数组);
与malloc相比优点:
- 自动计算返回值大小
- 无需类型转换可以被重载
- new为运算符,无需头文件
引用
引用作为函数参数
解决函数多个返回值问题,可以想象成传递地址,然后直接修改,不用使用*,区别于指针,输出型参数,作用类似于指针。
指针参数和引用参数的比较
调用函数时指针:f(&a,&b),f(a,b)
引用作为函数返回值:当作赋值等式的左边,
int x; //全局变量
int &f( )
{
return x; // returns a reference to x
}
main()
{ f( )=100; // f( ) 返回x的引用
cout<<“x=”<<x<<"\n";
return 0;
}
结果:x=100
注:返回类型需要为全局变量,这样才可以在任意函数直接传递。