赞
踩
目录
在C语言中,我们常用printf和scanf这两个函数进行输入输出。
在C++中,除了可以用这两个函数之外,还可以使用cin和cout进行输入输出。
- #include <iostream>
- using namespace std;
- int main()
- {
- int a;
- cin>>a;
- cout<<"Hello world!!"<<endl;
- }
说明:
1、<<是流插入运算符,>>是流提取运算符
2、使用cout标准输出对象(控制台)和cin标准输入对象(键盘)时,必须包含<iostream>头文件,以及按命名空间使用方法使用std。
3、使用cin和cout不需要像printf和scanf那样手动控制格式,C++的输入输出可以自动识别变量类型。
4、endl是特殊的C++符号,表示换行符,包含在<iostream>头文件中。
注意:早起标准库将所有功能在全局域中实现,声明在.h后缀的文件中,使用时只需要包含对应的头文件即可,后来将其实现在std命名空间下,为了和C头文件区分,也为了正确使用命名空间,规定C++头文件不带.h;旧的编译器(vc6.0)中还支持<iostream.h>格式,后续编译器已不支持,因此推荐使用<iostream>+std的方式。
缺省参数就是在函数声明时(没有声明就在定义时)给函数参数一个缺省值,在调用该函数时,若没有指定实参则采用该形参的缺省值。
- void Func(int a=0)
- {
- cout<<a<<endl;
- }
- int main()
- {
- Func();//输出0
- Func(10);//输出10
-
- return 0;
- }
函数的每一个参数都给了缺省值。
函数缺省值没给全。
- void Func(int a=0,int b=1,int c)
- {
- cout<<a<<endl;
- cout<<b<<endl;
- cout<<c<<endl;
- }
注意:
1、缺省参数必须从左往右依次给,不能间隔着给。
2、缺省参数不能在函数声明和定义时同时出现。
占位参数也可以给缺省值:
void func(int a,int = 10)
{}
func(10);//调用
在C语言中是不允许两个函数同名的,但C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表不同(参数个数或类型或类型顺序)不同,常用来处理实现功能类似数据类型不同的问题。
注意:只是返回类型不同的话,并不能构成函数重载。
why?举个例子
对于下面两个函数,如果我这样调用的话,由于省略了返回类型,就无法辨别到底调用了哪一个函数。
f(1,'a');
- void f(int a,char b)
- {
-
- }
- int f(int a,char b)
- {
-
- }
- 参数类型不同
- int Add(int a,int b)
- {
- return a+b;
- }
- double Add(double a,double b)
- {
- return a+b;
- }
- //参数个数不同
- void Func()
- {
- cout<<1<<endl;
- }
- void Func(int a)
- {
- cout<<a<<endl;
- }

为什么C语言不支持函数重载,而C++支持函数重载呢?
在一个C/C++程序中,一个程序要运行起来,需要经历一下几个阶段:预处理、编译
、汇编、链接。
C语言在编译后,函数名字的修饰并没有改变,而C++在编译后,函数名字的修饰发生了改变,编译器将函数的参数类型信息添加到了名字中。
举个例子,现有两个函数,分别名为Add和func
在C语言的编译器中:
在C++的编译器中:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。