输入和输出
#include<iostream>
using namespace std;
int main()
{
int a=0;
cin>>a;
cout<<"hello world"<<endl;
return 0;
}
std是c++标准库的命名空间,在使用cout、cin时<iostream>是必须包含的头文件,按命名空间的方法使用std
cout是标准输出相当于c语言的printf
cin是标准输入相当于c语言的scanf
"<<"是流插入运算符 endl等价于换行“\n"
">>"是流提取运算符
另外c++还能自动识别类型
#include<iostream>
using namespace std;
int main()
{
int a=0;
int b=0;
cin>>a>>b;
cout<<a<<" "<<b<<endl;
return 0;
}
缺省参数
1.概念
缺省参数就是在声明或定义函数时为函数的参数指定一个缺省值,调用函数时,没有实参,就用缺省值,有就用实参
2. 分类
全缺省参数
void Func(int a=1,int b=2,int c=3)
{
cout<<"a= "<<a<<endl;
cout<<"b= "<<b<<endl;
cout<<"c= "<<c<<endl;
}
半缺省参数
void Func(int a,int b=2,int c=3)
{
cout<<"a= "<<a<<endl;
cout<<"b= "<<b<<endl;
cout<<"c= "<<c<<endl;
}
需要注意的是半缺省参数从右往左给,中间不能有间隔
缺省参数不能在该函数声明和定义中同时出现
//b.h
void func(int a=10)
//b.cpp
void func(int a=20)
{}
声明和定义同时出现,两个提供的值不相同,编译器就不知道用那个缺省值
函数重载
1.定义
一个词能有多重含义,通过上下文判断词的真正含义,这就是函数重载
eg:
足球:谁也打不过 乒乓球:谁也打不过
2.概念
函数的一种特殊情况,,c++允许在同一作用域当中声明几个类似的同名函数,根据它们的类型、个数、类型顺序不同,处理实现功能类似数据类型不同的问题
2.1 类型
#include<iostream>
using namespace std;
//参数类型不同
int Add(int x,int y)
{
cout<<"int Add(int x,int y)"<<endl;
return x+y;
}
double Add(double x,double y)
{
cout<<"double Add(double x,double y)"<<endl;
return x+y;
}
2.2 个数
//参数个数不同
void func()
{
cout<<"func()"<<endl;
}
void func(int a=10)
{
cout<<"func(int a=10)"<<endl;
}
2.3 类型顺序
//参数类型顺序
void Erase(int i,double j)
{
cout<<"void Erase(int i,double j)"<<endl;
}
void Erase(double j,int i)
{
cout<<"void Erase(double j,int i)"<<endl;
}