文章目录
- C++入门
- C++输入输出
- 缺省参数
- 全缺省
- 半缺省
- 函数声明与定义分离
- 函数重载
- C++支持函数重载的原理--名字修饰
C++入门
C++输入输出
C++输入输出包含在# include《iostream》中
cout 类似在控制台中输出,使用cout需要使用流插入符(<<)
这个符号还有左移的作用。
流插入可以多个插入
c++输入cin类似从控制台输入的内容输入到变量中,它需要配合流提取(>>)一起使用,>>也有右移的作用。
缺省参数
缺省参数:定义函数中的形参设定默认值,调用函数时没有传递实参,就用默认值给形参传值。
全缺省
全缺省:将函数中的形参全部给定默认值
半缺省
半缺省:将函数中的形参部分给定默认值
注意:调用函数传参的时候,实参形参从左到右一一对应传参
当部分缺省时,设定缺省值应从右到左给定设置。
函数声明与定义分离
函数定义与声明分离问题 函数中设定缺省参数 并且函数声明 定义分离 缺省参数设定只能在声明中 ,因为俩个文件 中因为疏忽 把缺省值写错(不一致)就会造成歧义,编译器在编译阶段是检查语法是能够通过的,在链接过程中 把所以的文件合并一起时,因为函数的缺省参数值不一致,编译器不知道引用哪个缺省值,之后所引发错误。
注意:形参设定缺省值必须是常量或全局变量
函数重载
自然语言中有一次多义,C++祖师爷也搞了一个一词多义就是函数重载。
函数重载:(函数名相同,参数 类型或个数 顺序 不同)是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同,常用来处理实现功能类似数据类型不同的问题。
#include<iostream>
using namespace std;
// 1、参数类型不同
int Add(int left, int right)
{
cout << "int Add(int left, int right)" << endl;
return left + right;
}
double Add(double left, double right)
{
cout << "double Add(double left, double right)" << endl;
return left + right;
}
// 2、参数个数不同
void f()
{
cout << "f()" << endl;
}
void f(int a)
{
}
cout << "f(int a)" << endl;
// 3、参数类型顺序不同
void f(int a, char b)
{
cout << "f(int a,char b)" << endl;
}
void f(char b, int a)
{
cout << "f(char b, int a)" << endl;
}
int main()
{
Add(10, 20);
Add(10.1, 20.2);
f();
f(10);
f(10, 'a');
f('a', 10);
return 0;
}
C++支持函数重载的原理–名字修饰
c语言不能支持函数重载,假设函数定义与声明分离
链接时不能区分同名函数,在符号表中不知哪个函数名与之对应地址。
C++函数名字修饰就解决了问题
它的函数名修饰:函数名+参数类型
在不同平台环境下(各个编译器下都有一套规则),函数名的修饰规则不同