如果你见到取值标记时要当心,由于"="英语的语法也可以用来启用copy构造方法。
比如: Widget w3 = w2; //启用copy构造方法!!
copy构造方法是一个特别是在关键的涵数,因为它界定一个目标怎样passed by value(以值传送)。
举个事例,考虑一下编码:
bool hasAcceptableQuality(Widget w);
…
Widget aWidget;
if ( hasAcceptableQuality(aWidget) )
…
溶解hasAcceptableQuality(aWidget)这一句子以下:
Widget w = aWidget;
hasAcceptableQuality(w)
主要参数w是以by value 方法传送给hasAcceptableQuality.在以上启用中Widget被拷贝到w身体,这一拷贝姿势由Widget的copy构造方法进行。
汇总:涵数中的Pass-by-value寓意"启用copy构造方法".
以by value 传送客户自定种类一般 是个馊主意,Pass-by-reference-to-const(引入传送)通常是比较好的挑选。