引用:
int i,j;
int &ri=i; //创建引用变量的同时,必须初始化。引用相当于起别名。
j=10;
ri=j; //相当于ri=10.
引用在交换函数中的应用,实现了双向传递
swap(int& a,int& b)
{
int t=a;
a=b;
b=t;
}
swap(x,y); //可实现x,y值的交换
inline 内联函数:
实现通知编译器编译时在调用处直接用函数体替换,节省参数传递,控制转移开销。一般简单的函数,编译器会自动转为内联函数。
1.内联函数内不能有循环语句和switch语句,
2.内联函数的定义必须出现在第一次调用之前。
3.对内联函数不能进行异常接口声明。
constexpr函数:
在constexpr修饰的函数下,所有修饰的变量都是constexpr类型
重载函数:C++允许功能相近的函数在相同的作用域内以相同的函数名声明,从而形成重载,方便使用,便于记忆。
合法的重载函数举例:比较大小的函数(先写两个比较的函数,再写三个数的函数(调用两个数比较的函数)),
、或是下面的加法函数:
int add(int a,int b);
int add(int a,int b,int c);
float add(float a,float b);
重载函数的形参必须不同:类型不同或个数不同。同时编译器不以返回值作为区分重载函数的依据。
应用举例:
一开始输入整数,调用的是int型函数,当输入为小数时调用的是double型的函数。
华氏温度转摄氏温度:C=(F-32)*5/9;
斐波那契函数:
int fib(int n);
int main()
{
int n,answer;
cout<<"Enter number"<<;
cin>>n;
cout<<'' ";
answer=fib(n);
cout<<answer<<"is the" <<n<<"th Fibonacci number ";
return 0;
}
int fib(int n)
{
cout<<"Processing fib("<<n<<")...";
if(n<3)
{
cout<<"Return 1! ";
return ()1;
}
else
{
cout <<"Call fib("<< n-2<<")and fib("<<n-1<<"). ;
return (fib(n-2)+fib(n-1));
}
}
}