C++中复制构造函数被调用的三种情况
◊ 定义一个对象时,以本类另一个对象作为初始值,发生复制构造;(Java中是将已有对象的地址传给新的对象)
◊ 如果函数的形参是类的对象,调用函数时,将使用实参对象初始化形参对象,发生复制构造;(Java中是将实参对象的地址传给形参)
◊ 如果函数的返回值是类的对象,函数执行完成返回主调函数时,将使用return语句中的对象初始化一个临时无名对象,传递给主调函数,此时发生复制构造。(Java中,函数返回的是函数内创建的对象的地址)
C++中复制构造函数被调用的三种情况
◊ 定义一个对象时,以本类另一个对象作为初始值,发生复制构造;(Java中是将已有对象的地址传给新的对象)
◊ 如果函数的形参是类的对象,调用函数时,将使用实参对象初始化形参对象,发生复制构造;(Java中是将实参对象的地址传给形参)
◊ 如果函数的返回值是类的对象,函数执行完成返回主调函数时,将使用return语句中的对象初始化一个临时无名对象,传递给主调函数,此时发生复制构造。(Java中,函数返回的是函数内创建的对象的地址)