M********5 发帖数: 715 | 1 我对于c++一些很高级的特性都能理解,唯独对reference始终理解不了
首先总结一些,reference有如下的特性:
1.reference不能为NULL
2.reference是从一而终的,绝对不会变换所指的对象
下面写一段代码,然后问个问题
class A{
}
(类的定义省去了)
A a; //这里肯定会调用缺省的ctor
A& ra = a;
所以我的问题是,定义ra的时候,会调用A的copy contructor吗?
由此引申出了另外一个问题
在函数的参数为引用类型的时候(不是const引用类型),如果调用函数的时候,传递
的参数是一个对
象,那么这个时候会调用copy constructor吗 |
J******d 发帖数: 506 | 2 reference其实就相当于另起了个名字。定义ra的时候不会叫constructor, 因为ra指带
的还是同一个object. Pass by ref的时候也不会call copy constructor.否则pass by
ref还有什么意义?
【在 M********5 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 我对于c++一些很高级的特性都能理解,唯独对reference始终理解不了 : 首先总结一些,reference有如下的特性: : 1.reference不能为NULL : 2.reference是从一而终的,绝对不会变换所指的对象 : 下面写一段代码,然后问个问题 : class A{ : } : (类的定义省去了) : A a; //这里肯定会调用缺省的ctor : A& ra = a;
|
M********5 发帖数: 715 | 3
by
对哦,最后一句话解决问题了
【在 J******d 的大作中提到】![](/moin_static193/solenoid/img/up.png) : reference其实就相当于另起了个名字。定义ra的时候不会叫constructor, 因为ra指带 : 的还是同一个object. Pass by ref的时候也不会call copy constructor.否则pass by : ref还有什么意义?
|