设为首页收藏本站|繁體中文 快速切换版块

 找回密码
 立即加入
搜索
查看: 848|回复: 0

C++ 传指针还是引用

  [复制链接]
  • TA的每日心情
    慵懒
    2016-4-21 12:07
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    累计签到:3 天
    连续签到:1 天
    发表于 2010-4-30 15:30:41 | 显示全部楼层 |阅读模式

    马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!

    您需要 登录 才可以下载或查看,没有账号?立即加入

    ×
    用C++做了一段时间毕业设计了,突然有一天被困在传指针还是传引用的问题上。后来翻看了《C++ 编程规范》,并结合了项目实际情况,总结出下面结论:
    % t( n/ L8 Y2 \" I4 E8 V传指针
    • 如果函数保存了地址。例:复制地址给类成员变量、把地址保存在函数内静态局部变量中。
    • 如果参数是可以选的。例:允许传入NULL值。
    3 l6 d, ?% |$ t3 L+ g5 M2 C
    传引用
    • 如果函数没有保存地址。例:仅修改了参数引用对象。
    • 如果参数是不可选的,并且要求必须提供有效对象做参数。
    % H* q5 c  A3 w5 T8 t7 g
          如果函数保存了地址,可能在以后直接使用或者修改地址指向的对象。如果使用传引用的话,调用者不知道需要在栈(stack)还是在堆(heap)上分配引用对象资源。一旦调用者传入的引用对象是在栈上,编译器自动回收后,函数保存的地址将不再有效!
    . s% z) J( |* a* j. i      而函数保存了地址时使用传指针,就在提示调用者传入的指针参数指向的对象应当分配在堆上。6 P/ j5 ?! c6 f! @
          当然也有推荐全部使用传指针的,理由是传值和传引用容易使调用者混淆。我不赞同这个观点,我打算按照上述规则重新修改毕业设计。
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    楼主热帖
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

    小黑屋|手机版|APP下载(beta)|Archiver|电力研学网 ( 赣ICP备12000811号-1|赣公网安备36040302000210号 )|网站地图

    GMT+8, 2025-2-24 06:36

    Powered by Discuz! X3.5 Licensed

    © 2001-2025 Discuz! Team.

    快速回复 返回顶部 返回列表