【Cherno C++】构造函数与析构函数

194 阅读1分钟

构造函数

和java的构造函数大同小异

class Entity
{
public:
	
	Entity() {
		std::cout << "构造函数执行" << std::endl;
	}

	float X, Y;
	void Print()
	{
		std::cout << X << "," << Y << std::endl;
	}
};

int main()
{
	Entity e;
	e.Print();
	std::cin.get();
}

析构函数

析构函数(Destructor)也是一种特殊的成员函数,没有返回值,不需要程序员显式调用(程序员也没法显式调用),而是在销毁对象时自动执行。构造函数的名字和类名相同,而析构函数的名字是在类名前面加一个~符号。

class Entity
{
public:
	
	Entity() {
		std::cout << "构造函数执行" << std::endl;
	}

	float X, Y;
	void Print()
	{
		std::cout << X << "," << Y << std::endl;
	}

	~Entity(){
		std::cout << "析构函数执行" << std::endl;
		//可以做一些数据的delete操作
	}
};

//方法运行在栈空间,执行之后出栈
void Function()
{
	Entity e;
	e.Print();
}

int main()
{
	//析构函数在函数销毁的时候执行
	Function();
	std::cin.get();
}