为啥返回t就析构2次?返回d就析构3次?//date是类
建议你用vc++用vc++在你的析构函数上下断点,看触发几次断点,就是调用了几次。在控制台看,不准确。因为程序关闭,可能控制台先关闭,再调用析构函数,这样实际调用了,但是你看不到。还有一个,就是编译器会优化掉没有用的变量。比如你函数定义的变量,没有修改,可能直接被优化了。这个也可以用vc++的反汇编功能看下。
这种情况跟编译器优化有关,关于第二张图,我是用的vs2017编译器,在release下是析构两次,debug下都是析构三次