在C++中有一个很重要的法则:使用构造函数创建对象的顺序与使用析构函数释放对象的顺序相反。对于一些C++的初学者来说,这是一条有点费解的法则,那么该怎么理解和清晰的表现出来呢?下面我们通过程序来体现一下:
#include<iostream>
using namespace std;
//创建一个汽车类
class Car
{
public:
//构造函数
Car(short, int);
//析构函数
~Car();
void move();
private:
short speed;
int num;
};
Car::Car(short s, int n)
{
speed = s;
num = n;
cout << "创建第" << num << "辆车,速度是" << speed << " 米/秒" << endl;
}
Car::~Car()
{
cout << "销毁掉第 " << num << "辆车" << endl;
}
void Car::move()
{
cout << "第 " << num << "辆车速度是" << speed << endl;
}
//主函数
void main()
{
//先创建第car1对象,再创建car2对象
Car car1(10, 1), car2(20, 2);
car1.move();
car2.move();