COPY构造函数还有一种使用的场合,如下所示:
它的处理过程是使用COPY构造函数给motto进行初始化工作,然后将指针pStringBad指向这个&motto。
当使用值传递方式把一个对象作为实参传给形参时编译器是先调用COPY构造函数去生成一份这个实参的COPY,然后实际参与运算的是这个COPY。当你返回一个对象的时候也是,编译器通过COPY构造函数生成一份函数内的对象的COPY并把这个COPY作为右值赋给左值使用。
实际上任何涉及到临时对象的地方都会用到COPY构造函数,都会有复制行为也都会耗费时间,这就是为啥传值的时候要使用引用。