E2函数内部则会调用析构函数,有人会说,为什么不直接将析构注册为函数回调,这样直接调用atexit不就在释放的时候,从后往前依次调用析构的了吗....二丶对象作为函数参数的识别
高级代码:
PS: 为了节省篇幅,类的定义不在重复截图,重复定义了.
void foo(MyTest test)
{
printf("333\r\n");
}...内部会有个Jmp来调用析构
总结:
当函数参数为对象的时候.
1.会先在函数外部进行构造一次
2.调用函数
3.函数内部调用一次析构
4.函数结束之后的外面调用一次析构函数....其内部调用构造和析构
总结:
1.this指针会当做参数传递给函数, Mytest t = Getobj() t会当做参数传递
2.其函数内部开始的时候会调用构造函数,结束之前调用析构
3....加上类域则可以调用构造了,那么析构我们是显示调用,所以看看汇编代码,会传入0,不会释放内存的.
?