C++基础知识(命名空间、重载、缺省参数)

一、类型分类

类型分类: 

       基础类型

       自定义类型

二、命名空间

1.命名空间相当于全局域,用{}括起来一个文件,用namespace给这个文件命名。

 std是C++库里的文件,它的使用有两种方法,一种是using namespace std,一种是std::cout<<i<<std::endl(::是域作用解析符)。

C++基础知识(命名空间、重载、缺省参数)

2.C语言中1个域无法对一个变量进行多次定义,会造成重定义的问题。

 如下所示就由于a重定义从而导致无法编译:

#include<iostream>

using namespace std;

int a = 20;

int a = 30;

int main()

{

       printf("%d\n", a);

       return 0;

}

C++基础知识(命名空间、重载、缺省参数)

C++通过命名空间解决此问题,通过给不同的域定义不同的名字从而对域进行隔离,解决命名冲突的问题:

C++基础知识(命名空间、重载、缺省参数)

3.总结:using namespace std命名空间的优缺点

 优点:解决了C语言命名空间冲突的问题(一个域内无法对变量进行多次定义)

 缺点:直接调用的库里的函数,如果定义的与库里的重复,则无法进行编译

三、函数重载

C语言不支持两个函数的函数名相同,而C++支持两个函数的函数名相同,即重载。

1.定义:函数名相同,参数不同(参数的个数或类型不同)

C++基础知识(命名空间、重载、缺省参数)

参数不同是指参数的个数或者类型不同(其中若参数有多个个数和类型,只要顺序不同也可构成重载)

C++基础知识(命名空间、重载、缺省参数)

2.C++是怎样支持重载的?

C++遵循函数名修饰规则,C++的命名由函数名以及参数类型等构成,既是函数名相同,但是参数不同,从而函数参数的首字母不同,从而函数名不同,所以C++支持重载

C++基础知识(命名空间、重载、缺省参数)

四、缺省参数

1.分类:

    缺省参数分为全缺省与半缺省,全缺省即函数的参数都给赋值,半缺省即函数的参数可以部分不赋值

C++基础知识(命名空间、重载、缺省参数)

2.半缺省参数只能从左向右缺省,以下的定义是不可以的,默认实参不在形参列表的结尾

int f3(int x1=5, int x2 )

{

       return x1 + x2;

}