函数的重载和引用和关键字new_吃鱼的小脸猫_新浪博客

一、函数的重载
       1、C++函数符号生成的影响:
        (1)形参的类型、顺序、个数
        (2)函数名
        (3)返回值
      2、函数重载的意义:同一个接口(函数名)实现不同的功能
      3、做重载的依据:
        (1)函数名称相同;
        (2)同作用域;
        (3)参数不同;
      4、函数的返回值不能作为重载的依据,因为在调用点不知道函数返回值,所以返回这不能作依据。
二、引用
      1.定义:引用就是某一变量的别名,对引用的操作月对变量直接操作完全一样。
        引用的声明方法:类型标识符 & 引用名 = 目标变量名;
      2、引用的注意点:
         (1)引用一定要初始化
         (2)引用不能引用,不能取地址的数据(例如:常数)
         (3)引用一旦引用后无法改变的(引用自带解引用的作用,引用是类型+&)
         (4)const int &c = 10;//error常引用引用的是一个临时量,临时量则为常量,不可以赋值。
           (5)引用使用的是引用内存块
      3.引用的应用
         (1) 引用作为参数   

      引用的一个重要作用就是作为函数的参数。以前的C语言中函数参数传递是值传递,如果有大块数据作       为参数传递的时候,采用的方案往往是指针,因为 这样可以避免将整块数据全部压栈,可以提高程序       的效率。但是现在(C++中)又增加了一种同样有效率的选择(在某些特殊情况下又是必须的选择),       就是引用。

   (2)常引用    

     常引用声明方式:const 类型标识符 &引用名=目标变量名用这种方式声明的引用,不能通过引用对      目标变量的值进行修改,从而使引用的目标成为const,达到了引用的安全性。

   (3)引用作为返回值    

     要以引用返回函数值,则函数定义时要按以下格式:  

     类型标识符 &函数名(形参列表及类型说明) 

     {函数体}    

     说明:    

     a.以引用返回函数值,定义函数时需要在函数名前加&    

     b.用引用返回一个函数值的最大好处是,在内存中不产生被返回值的副本。

  4.引用的总结:

  (1)在引用的使用中,单纯给某个变量取个别名是毫无意义的,引用的目的主要用于在函数参数传递中,解      决大块数据或对象的传递效率和空间不如意的问题。    

  (2)用引用传递函数的参数,能保证参数传递中不产生副本,提高传递的效率,且通过const的使用,保证      了引用传递的安全性。    

 (3)引用与指针的区别是,指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使     用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。

 (4)使用引用的时机。流操作符<<和>>、赋值操作符=的返回值、拷贝构造函数的参数、赋值操作符=的参       数、其它情况都推荐使用引用。

三、new和malloc的区别

  1.new是个关键字,malloc是个函数

  2.new是开辟空间+初始化,malloc只是开辟空间

  3.new开辟位置在自由存储区域,malloc开辟的内存在堆上

  4.new内存不足抛出异常处理,malloc内存不足返回NULL  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值