一·基础框架
在C语言中我们通过包含头文件<stdio.h>使用库函数printf和scanf输入输出。
在C++中我们包含头文件实现输入输出。
cout<< 输出对象流
cin>> 输入对象流
endl 换行
#include<iostream>
using namespace std //命名空间
int main(){
char ch='a';
int b=10;
float f=3.14;
cout<<"ch=""<<ch<<endl;
cout<<"b="<<b<<" f="<<f<<endl;
int result;
cin>>result;
cout<<"result="<<result<<endl;
}
二.函数重载
C语言中不存在此功能,C++中支持函数重载。
函数重载不能只依靠返回值类型,要通过参数类型或者参数个数来实现重载。
函数重载的本意是由于我们在进行函数命名是可能会出现相同名字的函数实现的功能不同,因此我们如果能保证其内部参数的差异,就可以实现函数重载。
#include<iostream>
int func(int a,int b){
return a+b;
}
float func(float a,float b){
return a+b;
}
三.缺省参数
缺省参数就相当于备胎一样。
void fun(int a=0){
cout<<"a="<<a<<endl;
}
void main(){
fun()//此时的a值就为默认值0
fun(a=10)//此时的a值为10
}
当我们的函数参数列表里有多个参数时,可以从右向左依次缺省,不能间隔。
四.引用
引用不是定义变量,而是给变量取别名,引用与其引用变量公用一块内存空间。
特点:引用在使用时必须初始化,且一个变量可以有多个引用,引用一旦引用一个实体,就不能再引用其他实体。
void TestRef()
{
int a=10;
int &ra=a;//定义引用类型
printf("%p\n",&a);
printf("%p\n",&ra);
}
常变量必须使用常引用。
int& Add(int a,int b)
{
int c=a+b;
return c;
}
注意:此时会出现编译错误,返回值c是一个局部变量,它的生命周期是在此函数范围内,此时使用引用返回,变量已经被释放了,引用的是一个无效的变量,可能会返回一个随机值,导致程序结果错误。
五.内联函数
inline int Add(int a,int b)
{
return a+b;
}
int main()
{
int ret=0;
ret=Add(1,2);
return 0;
}
以上代码中Add函数作为主函数的内联函数,在编译期间编译器会用函数体替换函数调用,目的是为了提高程序运行的效率。
内联函数本质是通过空间换时间,因此代码中若出现循环和递归等逻辑复杂函数,建议不使用内联函数