C++对象创建与销毁
来源:哔哩哔哩
发布时间:2023-04-30 23:13:04
有一个类 Entity
每个类都有一个默认的构造函数和析构函数(即使你没有自行去定义它们),在创建对象时自动调用构造函数,在销毁对象时自动调用析构函数。他们通常是不用显式调用的。
这段代码为Entity类分别定义了一个构造函数和析构函数。
(资料图片)
我们可以使用Entity a;来创建一个名为a的Entity对象
语法:类名 对象名称;
每个对象将会在作用域结束后自动销毁,也就是说在main函数执行完后将会调用析构函数进行销毁,运行以下代码。
会发现只输出了关于创建的而没有销毁,回车后将会输出销毁。
以上是在栈中创建对象,它的释放由系统决定,
在堆里面创建对象可以在出作用域后对象依然存在,它的释放由自行决定,在堆中创建对象的例子:
语法: 类名 *对象名称 = new 类名;
这样将会在堆中创建一个对象a
要想销毁它需要使用delete释放它
语法:delete 类名;
注:如果不去释放掉堆中创建的对象,那么将可能造成内存泄漏(堆中创建的对象只要你不去释放它,它将会一直存在)
栈对象:释放由系统决定,生命周期短,自由度低
堆对象:释放自行决定,生命周期长,自由度高
标签: