码迷,mamicode.com
首页 > 编程语言 > 详细

C++笔记一:函数

时间:2017-05-06 20:49:41      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:返回值   副本   一个人   创建   如意   区别   原因   好处   完全   

                          再谈C++函数

1:引用

2:默认参数

3:函数重载

4:函数模板

————————————————————————————————————————————————————————————————

1:引用

  引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。
表示给变量起一个别名,二者共享相同的内存区域。类似同一个人具有不同的名字。
 
 引用作为函数参数
    1.  为了在函数内部可以修改实参。
    2. 大型的结构体或对象作为函数参数时,为避免拷贝我们一般采用指针或引用传递参数
 
引用作为函数返回值 
   返回函数值,定义函数时需要在函数名前加&:具体的是在函数类型和函数名之间加上&即可
 返回引用类型的好处是不产副本,不需要拷贝。因为拷贝需要消耗大量的资源
  注意:不能返回局部变量的引用。原因是局部变量会在函数返回后被销毁
 
对引用的一些总结
  (1)在引用的使用中,单纯给某个变量取个别名是毫无意义的,引用的目的主要用于在函数参数传递中,解决大块数据或对象的传递效率和空间不如意的问题。
  (2)用引用传递函数的参数,能保证参数传递中不产生副本提高传递的效率,且通过const的使用,保证了引用传递的安全性
  (3)引用与指针的区别是,指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。

参考代码:

   技术分享技术分享技术分享技术分享

————————————————————————————————————————————————————————————————

 (2)默认参数

  函数的默认参数值,即在定义参数的时候同时给它一个默认的初始值。在调用函数的时候,我们可以省略含有默认值的参数。也就是说,如果用户指定了参数值,则使用用户指定的值,否则使用默认参数的值。

默认参数的语法与使用:
(1)在函数声明或定义时,给参数赋一个默认的值。
(2)在函数调用时,省略具有 默认值的参数。这时可以用默认参数来代替。
如果一个参数设定了缺省值,其右边的参数都要有缺省值。
可以在函数声明或函数定义中指定默认形参,但只能指定一个地方,不能在两个地方同时指定
 技术分享

技术分享

}

————————————————————————————————————————————————————————————————

 (3)函数重载

  函数重载是指在同一作用域内,可以有一组具有相同函数名,不同参数列表的函数,这组函数被称为重载函数
  重载函数通常用来命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。
  需要注意的是:如果两个函数参数列表相同,仅仅是返回值不同,这不是重载,编译器在编译的时候会报错。

  10 + 20
  10.3 + 20.3
 技术分享

————————————————————————————————————————————————————————————————

 (4)函数模板

  所谓函数模板,实际上是创建一个通用函数,其函数返回值类型和形参类型不具体指定,用一个虚拟的类型来代替。这个通用函数就称为函数模板
  函数模板的实例化

函数模板的定义形式是:
template <typename T>:其中template和typename都是关键字,保持不变,可变的只能是T
函数实现
 
与函数重载的比较
模板函数与函数重载有些类似,但不同之处也很明显。
重载函数内部实现可以完全不同,但模板函数内部算法相同

 技术分享

C++笔记一:函数

标签:返回值   副本   一个人   创建   如意   区别   原因   好处   完全   

原文地址:http://www.cnblogs.com/hustercn/p/6817930.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!