c++对“匿名对象”的两种处理方法
1.对于语句:class A; A="匿名对象";待对象A把"匿名对象"的数据复制过来后,“匿名对象被释放”
运行结果:
从执行结果可以看出,fun()函数内的p和main()函数中的p1地址不同,且有两次构造和两次析构,证实了上面的说法。
2.对于语句:class A="匿名对象";匿名对象被直接“扶正”,不被释放
运行结果:
由上面执行结果可知,fun()函数内的对象p的内存空间并未释放,而是与man()函数内的p1关联,这是编译器做了优化。