C++入门第一课(命名空间;输入输出;缺省参数;函数重载)

首先,我们在C++的环境(vs2013)下写一段“hello world”的代码。

#include<iostream>
using namespace std;

int main()
{
cout << "hello bit" << endl;
return 0;
}

我们来解释一下

一、instream 是头文件,表示输入输出流。

二、其次,using namespace std;
namespace是一个关键字,它的作用是:使用命名空间来对标识符的名称进行本地化处理,避免命名冲突。(说人话:namespace建造了一个空间,这里面标识符的名字可以和其他变量名一样)

所以,此时,我们使用的是std(C++标准库)这个空间中名字(即后面用到的cout)。

//C++库里面的东西都放在std这个命名空间中

三、具体来说一下,命名空间的概念。

1、定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名
空间的成员。

举例:
(1)普通的命名空间,
namespce L1
{
int a;
int Add(int x,int y)
{
return x+y;
}
}

扫描二维码关注公众号,回复: 12728493 查看本文章

(2)嵌套的命名空间
类似于
namespace L1
{
....
....
....
namespace L2
{
...
...
...
}
}

(3)在同一工程中,C++是允许存在多个相同的命名空间的,在编译时会合成到一个命名空间中。

这个类似于合并同类项。

好,说完命名空间,
2、我们接着来谈命名空间的使用

(1)首先可以命名空间名称加作用域限制符。(注意是俩冒号)

如:printf("%d\n",L1::a);

(2)使用using将命名空间引入。(注意是俩冒号)

如:using L1::a;
int main()
{
printf("%d\n",a);
return 0;
}

(3)使用using namespace命名空间名称引入

如:using namespace std;

四、C++输入&输出

  1. 使用cout标准输出(控制台)和cin标准输入(键盘)时,必须包含< iostream >头文件以及std标准命名空间。

2.相比 printf / scanf ,可以自动识别类型,控制输出格式。cin、cout 和scanf、printf哪个方便用哪个,可以混用。

3.C++中支持在一行内连续输出。

4.endl换行符等价于'\n'。

举例:cin>>a;
cin>>a>>" ">>b>>c;

                cout<<b<<"   "<<endl;

五、缺省参数

1、什么是缺省参数

缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用该函数时,如果没有指定实参则采用该默认值,否则使用指定的实参。

2、分为全部缺省参数和半缺省参数

全部缺省,即每个函数的参数全部都指定了默认值。此时在调用是,如果不指定实参,则用默认值。

半缺省参数必须从右往左一次给出,中间不能有间隔。
缺省参数不能在函数声明和定义中同时给出。
缺省值必须是常量或者全局变量。
C语言并不支持缺省参数。

六、函数重载

1、什么是函数重载?
是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数 或 类型 或 顺序)必须不同,常用来处理实现功能类似数据类型不同的问题。

函数重载不能依靠返回值的不同来构成重载,因为调用时无法根据参数列表确定调用哪个重载函数。

2、为什么在C++中会发生函数重载呢?

因为C++重载函数时,只要形参不同,通过函数修饰(通过函数修饰规则来区分,只要参数不同,修饰出来的名字就不一样),达到区别的目的,链接时就不会产生冲突。

而,C语言是直接拿函数名去找,并没有函数修饰的过程,链接时就会产生冲突。

猜你喜欢

转载自blog.51cto.com/14895857/2651754