
请问老师,如图里面,我自己写了个Test类,以及一个 test_func 的函数,这个函数返回一个 Test 类。
在main函数中让一个 Test ty 接收函数返回值。按照我的理解 test_func 中 return 的那个 t 应该在函数执行完的时候就被释放了,所以 main 函数中第37行那里应该会触发拷贝构造呀,但是执行的时候发现并没有触发。
编译选项确认了一下并没有开启什么优化:
然后还有个问题是:
我给 test_func 这个函数的返回值加了个引用,按我理解返回引用的话应该不会触发拷贝构造了,但是这触发了,并且拷贝构造中拿到的 string 值是一堆乱码,所以有点不明白,是因为 test_func 中的 str 在 test_func 执行完毕的时候被释放的原因么?
谢谢老师~