c++命名空间和函数重载

一、命名空间

1、为什么会出现命名冲突

  我们对一个变量命名时,可以采用不同的方式,可初学者却并不了解库里面已经命名的变量,这时候就会出现命名冲突

2、C++解决命名冲突的两种方法

(1)展开命名空间域
  展开命名空间域,让局部变量变为全局变量

语法:using namespace +需要展开的空间域

(2)指定访问命名空间域

语法:(指定命名空间域)::a

(3)展开指定命名空间域

语法:using std::(库函数里面的某个命名空间);

当把某个命名空间域展开后,可能出现以下情况,两个都是全局变量时指代不明。因此我们只需要展开库函数里面需要的某个部分,尽量避免全部展开带来的命名冲突问题

二、函数重载

1、概念

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

  在C语言中,我们经常用add1(),add2(),这样不重名的函数,而C++对此进行了优化。简而言之只需要函数参数不同,不需要考虑返回值类型

2、C++为什么支持重载

  C编译器找函数定义时,只有函数名,不确定是哪个函数。而C++编译器找到函数定义时,还包括了里面的参数,保证了定义的唯一性

三、缺省函数

1、概念

缺省函数是指在类定义中提供默认参数值的成员函数,这些参数可以在调用的时候省略。如果省略了某些参数,则会使用定义中的默认值。

(1)全缺省

(2)半缺省-只能从右往左缺省

2、优势

1、代码简洁易读:缺省函数可以减少代码的长度,使得代码更加简洁和易读。
2、减少重复代码:定义一个带有默认参数的函数可以避免编写多个类似的重载函数,并且在需要修改时也只需要修改一个函数。
3、更好的可扩展性:在不破坏现有代码的情况下,可以轻松添加新的参数或者修改默认值,从而实现更好的可扩展性。
4、方便调用:使用缺省函数时,可以省略一些不必要的参数,从而让函数调用变得更加方便。

四、引用

1、概念

引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。

  公用一块内存空间,改变别名也就改变了原来指向的内容。

2、优势

1、节省内存空间:引用不会像指针那样占用额外的内存空间,它只是目标对象的一个别名,因此不会增加内存使用量。
2、简化代码:引用可以简化代码的编写,避免了频繁解引用指针的操作,让代码更加简洁和易读。
3、更安全:在使用指针时,由于指针可以指向任何类型的数据,因此存在一定的风险。而引用只能指向一个特定类型的数据,因此更加安全可靠。
4、方便函数参数传递:函数传递引用作为参数,可以实现对原始数据的修改,而不需要在函数内部进行大量的复制操作,从而提高程序效率。

  这篇博客到此就结束了,点滴记录C++学习生活,期待我们的下一篇博
客见面!

猜你喜欢

转载自blog.csdn.net/Front123456/article/details/130182490