【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 @ 2023-11-12 23:52  ichprobiere  阅读(24)  评论(0编辑  收藏  举报