c++中函数传入一个引用是不是就相当于 c语言中的传入一个指针啊 ?传引用的好处在于不用复制一个对象副本,对于深度构造,是不是我传引用就不用写复制构造函数了????
c++ c
------解决方案--------------------------------------------------------
当作为函数参数的时候,引用和指针差别不大。当函数参数为引用的时候,不存在使用拷贝(复制)构造函数的,因为引用其实就是变量(对象)的别名。
------解决方案--------------------------------------------------------
引用其实就是变量(对象)的别名,所以程序code不用变化就可以拷贝到函数里面。
例如
ClassA a;
...
a.doSomething();
现在换成函数:
void doAll(ClassA& a){
a.doSomething();
}
如果是指针:
void doAll(ClassA* a){
a->doSomething();
}
看到其中的区别了吗?不大,所以在纯C里面没有引用,经常用指针代替引用的作用。
------解决方案--------------------------------------------------------
引用是引用,指针是指针,引用做参数,不会再调用复制构造函数