第一个函数会多一次析构函数的调用是因为返回 'p' 时会发生拷贝构造,即会调用一次拷贝构造函数,然后返回的对象又会在函数调用结束时被销毁,因此会调用一次析构函数。

第二个函数不会多一次析构函数的调用是因为返回 'p' 时返回的是一个引用,不会发生拷贝构造,所以不会调用析构函数。

C++ 函数返回值优化 (Return Value Optimization) 与析构函数调用

原文地址: https://www.cveoy.top/t/topic/Kx0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录