MyException - 我的异常网
当前位置:我的异常网» C++ » 用引述做参数

用引述做参数

www.MyException.Cn  网友分享于:2013-02-18  浏览:0次
用引用做参数
c++中函数传入一个引用是不是就相当于 c语言中的传入一个指针啊 ?传引用的好处在于不用复制一个对象副本,对于深度构造,是不是我传引用就不用写复制构造函数了????
c++ c

------解决方案--------------------
当作为函数参数的时候,引用和指针差别不大。当函数参数为引用的时候,不存在使用拷贝(复制)构造函数的,因为引用其实就是变量(对象)的别名。
------解决方案--------------------
引用其实就是变量(对象)的别名,所以程序code不用变化就可以拷贝到函数里面。
例如

ClassA a;
...
a.doSomething();

现在换成函数:

  void doAll(ClassA& a){
    a.doSomething();
}

如果是指针:
  void doAll(ClassA* a){
    a->doSomething();
}

看到其中的区别了吗?不大,所以在纯C里面没有引用,经常用指针代替引用的作用。
------解决方案--------------------
引用是引用,指针是指针,引用做参数,不会再调用复制构造函数

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有