class Car
{
public:
int wheel;
std::string color;
Car(void);//声明构造函数
~Car();//声明析构函数
};
构造函数
Car::Car(void) //定义,其实也可以在声明时直接定义
{
wheel = 4;
color = "WHITE";
}
特点
- 构造函数的函数名与所在的类名相同(区分大小写)
- 在由类定义对象的时候就会第一时间调用构造函数
- 构造函数没有返回值,不用加void。
- 每一个类都有至少一个构造器,自己忘记定义时,编译器会自动定义一个空的构造器和副本构造器。
作用
申请分配内存
析构函数
Car::~Car()
{
//目前还不会,以后再补上,反正析构函数不是只声明就能实现释放内存功能的,还需要自己编写具体操作
}
特点
- 析构函数与其对应的构造函数名相同,仅在前面多了一个“~”。
- 析构函数没有返回值,不用加void。
- 析构函数没有参数,不用声明任何形参。
- 若不自己定义析构函数,编译器不会自动定义,即析构函数可有可无。
作用
清理内存
疑问
- 多个构造器有什么用?
- 什么时副本构造器?
/*
个人记忆:
构造器=构造函数
析构器=析构函数
*/