C++ 匿名对象的生命周期

Posted 庖丁解牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ 匿名对象的生命周期相关的知识,希望对你有一定的参考价值。

//匿名对象的生命周期
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

class Point{
public:
    Point(){
        cout << "自定义的无参构造函数被调用了1" << endl;
    }
    ~Point(){
        cout << "自定义的析构函数被调用了2" << endl;
    }
};

void ProtectA(){
    //直接调用Point的类构造函数
    Point();
    //此时c++编译器会自动生成匿名对象,
    //但是通过观察发现  执行Point();同时调用无参构造函数和析构函数
    //说明c++编译器发现后面没有代码调用这个匿名对象,所以立刻释放了
}

void main(){
    ProtectA();

    system("pause");
}

 

以上是关于C++ 匿名对象的生命周期的主要内容,如果未能解决你的问题,请参考以下文章

导航上的片段生命周期重叠

“异常对象的生命周期”及“匿名对象抛出和引用接收的最优操作”

从 C 扩展跟踪 CPython 对象的生命周期

C++ lambda 表达式的生命周期是多少?

调用 replace() 时片段的生命周期是啥?

c++类中 各种成员的生命周期?