适合机械网站的wordpress主题模板,阿里云虚拟主机免费版,商务网站策划书,免费软件的特征#xff08;1#xff09;该函数的定义和位置如下#xff1a;  
可见#xff0c;传入形参为某种类型的引用#xff0c;该函数会执行形参的析构函数#xff0c;还可以有效解决数组的连续析构。很强大的函数。 #xff08;2#xff09;疑问是#xff0c;若形参是指针类型…1该函数的定义和位置如下  
可见传入形参为某种类型的引用该函数会执行形参的析构函数还可以有效解决数组的连续析构。很强大的函数。 2疑问是若形参是指针类型该函数怎么执行指针类型是没有析构函数的。 3举例如下代码和实验结果  可见当该函数的形参是指针类型没有析构和构造函数该函数不执行具体的内容什么也不做。 4我们可以以汇编代码跟踪一下上面代码的反汇编代码如下  如图开始执行第22行代码按F11 继续进入这个全局函数得汇编代码  可见当形参类型是指针时该函数什么也没做。或者说指针类型是c内置类型c编译器给指针类型规定的构造和析构函数中就是没有任何代码空函数体的。实际看汇编代码根本就没有跳转比如转至指针的析构函数执行。直接就ret返回了。这个奇怪现象有别于真正的数据类型。也是本文探讨验证的初衷。以更多的了解该函数。 5该函数在vs2019上阅读STL源码时频繁出现。有些数据结构里有指针类型的成员。STL总对指针调用_Destroy_in_place(…)。如图举例是在单向链表forward_list 的源码中在函数clear() 中。   如此就解开了对指针应用该函数的疑惑相当于什么也没做。谢谢阅读