• 6816阅读
  • 9回复

函数参数传递 [复制链接]

上一主题 下一主题
离线langzi
 

只看楼主 倒序阅读 楼主  发表于: 2011-03-27
最近在看别人的代码时有一点不是很理解,请大家给我解释一下
一个函数如void classA::findFiles(const QString& path=QString()),请问大家将参数写成这样的好处是什么?是不是将参数完全copy一份啊?
离线XChinux

只看该作者 1楼 发表于: 2011-03-28
这是默认参数,看看C++默认参数方面的内容。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线jdwx

只看该作者 2楼 发表于: 2011-03-28
void classA::findFiles(const QString& path=QString())
QString& path 表示参数类型是QString的引用,没有copy,其实就是调用函数时的参数本身,加上const参数在函数内不可以修改,=QString()默认参数是一个空字符串。
一般情况下传指针和引用能加快程序速度。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线roywillow

只看该作者 3楼 发表于: 2011-03-28
const QString& 为传递一个常量引用,可以避免数据复制而降低效率并且这样做不会出现函数内部的操作导致原变量的改变(或者说禁止改变也可以吧……)
之后的就是提供一个默认值,QString()就是个空字符串么
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线langzi

只看该作者 4楼 发表于: 2011-03-28
非常感谢,看了大家的解释,收获不小。
离线downstairs

只看该作者 5楼 发表于: 2011-05-10
字符串常量引用
喜爱编程的猫头鹰
离线alvinhuai
只看该作者 6楼 发表于: 2011-07-20
常量的调用,这种在Qt中很常见。
离线xiangxiao
只看该作者 7楼 发表于: 2011-08-16
学习了
离线yueno3

只看该作者 8楼 发表于: 2011-08-21
缺省参有很大用处,主要用于简化构造器的编写

比如,你写

X(A aa=0){a=aa}

这种构造器,就不用同时写两个

X(){a=0}

X(A aa){a=aa}

在很多语言中,如果不支持这种语法,就要同时写很多个构造器(如java),那样是费时费力又容易出错的
离线xiangxiao
只看该作者 9楼 发表于: 2011-08-23
我以前以为C++不支持默认值的传递,最近才知道也可以,自己太无知了
快速回复
限100 字节
 
上一个 下一个