当前位置: 代码迷 >> C++ >> 用引述做参数
  详细解决方案

用引述做参数

热度:509   发布时间:2013-02-26 00:00:00.0
用引用做参数
c++中函数传入一个引用是不是就相当于 c语言中的传入一个指针啊 ?传引用的好处在于不用复制一个对象副本,对于深度构造,是不是我传引用就不用写复制构造函数了????
c++ c

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

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

现在换成函数:

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

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

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