什么是构造函数(constructor)
构造函数是一种特殊的方法(method,即类中的函数),它在类每次实例化的时候运行。
举个例子
#include <iostream>
class Entity
{
public:
float X, Y;
void Print()
{
std::cout << X << "," << Y << std::endl;
}
};
int main()
{
Entity e;
e.Print();
std::cin.get();
}
比如创建一个Entity
类,X
与Y
表示位置,当直接执行上述代码时,会发现控制器上会显示两个不知所谓的数字。这是因为虽然我声明了内存,但并未对内存初始化。
当直接在主函数中打印X
时,则会直接跳出报错,提示内存未初始化。
我可以直接写一个初始化的方法
void Init()
{
X = 0.0f;
Y = 0.0f;
}
但这样做的话,实际上增加了代码,每次调用这个类的时候都需要调用一次初始化方法,略显麻烦。
因此,一个自然的想法就是当我创建类的时候就自动帮我初始化,这就是构造函数这个特殊类型的用法。
我们只需要像写其他函数一样去它,区别在于不写返回值类型,且名字必须和类的名字一致。
Entity()
{
X = 0.0f;
Y = 0.0f;
}
教程来源:The Cherno C++