【C++】构造函数和析构函数

构造函数:当对象要被创建时被调用
析构函数:当对象要被销毁时被调用

构造函数

构造函数的名字和类的名字相同(大小写也一样)

class X {
	int i;
public:
	X();
};

构造函数是在对象被创建时自动调用,其无返回类型,但可有参数,如:

Tree t(12);

若构造函数没有参数,则称之为default constructor

注意这里的default constructor并非是编译器提供的,编译器提供的constructor称为auto default constructor

对象初始化时若未给参数,则编译器会去调用default constructor,若无default constructor,则会报错。

如声明对象数组时:

A y[2] = { A(1) };

这里编译器会默认第二个对象A是用default constructor来构造,若该对象无default constructor,则会报错。

析构函数

析构函数既无返回类型,也不能有参数,一般是用于返还对象生命期中申请的资源

class Y {
	int i;
public:
	~Y();
};

Java会清空声明对象的内存区域,而c++不要求,故绝大多数编译器都不会做这个事,只能让程序员通过析构函数来实现。

vs studio的debug编译c++代码时,编译器会将对象的内存区域中填充0xCD来表明未被初始化,而0xCDCD恰好在国标码里表示烫字

posted @   ichprobiere  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示