• 用类的一个实例化对象去初始化另一个对象的时候

  • 函数的参数是类的对象时(非引用传递)

  • 函数的返回值是函数体内局部对象的类的对象时 ,此时虽然发生(Named return Value优化)NRV

    优化,但是由于返回方式是值传递,所以会在返回值的地方调用拷贝构造函数

即使发生NRV优化的情况下,Linux+ g++的环境是不管值返回方式还是引用方式返回的方式都不会发生拷贝构造函数,而Windows + VS2019在值返回的情况下发生拷贝构造函数,引用返回方式则不发生拷贝构造函数。