C++基础:对象的生存期,关键字new、delete与库函数malloc、free的区别

本文详细探讨了C++中对象的生存期,包括局部变量、全局对象和动态创建的对象。讲解了new与malloc在内存分配、构造函数调用、类型安全性和异常处理上的差异。此外,还阐述了如何使用定位new以及new和malloc在内存区域和重载上的不同。
摘要由CSDN通过智能技术生成

1.局部变量:

对于局部定义的对象,每当程序控制流到达该对象定义处时,调用构造函数。当程序控制走出该局部域时,则调用析构函数。

对于静态局部定义的对象,在程序控制首次达到该对象定义处时,调用构造函数。当整个程序结束时,调用析构函数

       实例:局部对象

#include<iostream>
using namespace std;
class Complex
{
	double  Real;//实部
	double Image;//虚部
public:
	Complex() :Real{}, Image{} //缺省函数的构造
	{
	
		cout << "creat object: " <<this<< endl;
	}
	Complex(double r, double i) :Real{ r }, Image{i} //带参数的构造函数
	{
		cout<< "creat object: " <<this<< endl;
	}
	~Complex()
	{
		cout << "destroy object: " << this << endl;
	}
	void print() const //常方法
	{
		cout << "Real= " << Real << 't' << "Image= " << Image << endl;
	}
};
void fun()
{
	Complex c1(1.2, 2.3);
	static Complex c2(3.1, 4.5);
}
int main()
{
	int n = 5;
	for (int i = 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值