复制构造函数被调用的三种情况------新标准c++程序设计
1、当用一个对象去初始化同类的另一个对象时,会引发复制构造函数被调用。例如,下面的两条语句都会引发复制构造函数的调用,用以初始化c2.
C c2 (c1);
C c2=c1;
这两条语句是等价的。注意第二条是初始化语句,不是赋值语句。赋值语句的等号左边是一个早已有定义的变量,赋值语句不会引发复制构造函数的调用。例如:
C c1,c2;
c1=c2;
"c1=c2;"这条语句不会引发复制构造函数的调用,因为c1早已生成,已经初始化过了。
2、如果函数F的参数是类C的对象,那么当F被调用时,类C的复制构造函数将被调用。换句话说,作为形参的对象,是用复制构造函数初始化的,而且调用复制构造函数时的参