C++中何时调用复制构造函数
在C++中,只有单个形参,而且该类型是对本类类型的引用(常用const修饰),这样的构造函数称为复制构造函数。
复制构造函数既可以自己定义又可以像默认构造函数一样被编译器隐式调用。但大多数时候,特别是类中有指针成员的时候要实现深复制,避免浅复制时,就需要自己定义复制构造函数。
那么我们定义的复制构造函数什么时候调用呢,总结起来,有如下五种情况,下面分别举例说明。
一、根据一个同类型对象显示或隐式初始化一个对象。
例如:
在以上数组中,数组元素将是用三个字符串的副本。以上五种情况便是复制构造函数的用武之地。