一、构造函数
当一个实例(对象)被创建时,构造函数就会被调用,那么构造函数的作用是什么呢?
当建立一个对象时,常常将某些初始化操作放在构造方法中执行,比如:
Person.h 文件:
Person(); // 构造方法
Person.cpp文件:
Person::Person() {
mIndex = 0;
}
构造函数没有类型、没有返回值、没有修饰符,以下代码是构造函数的声明:
Person();
Person(int a);
Person(int a, char b);
Person(int a, char b, float c);
Person()属于默认构造函数,即使代码中不写,当Person实例被创建时,也会被默认执行。
当执行以下代码时,Person被创建:
Person p;
当构造方法中存在参数时,代码如下:
Person.h 文件:
Person(int index, char name[25], short age); // 构造方法
Person.cpp文件:
Person::Person(int index, char name[25], short age) {
mIndex = index;
strcpy_s(mName, strlen(name) + 1, name);
mAge = age;
}
调用:
int index = 2;
char name[] = "wangwu";
short age = 14;
Person person(index, name, age);
cout << person.getIndex() << endl;
cout << person.getName() << endl;
cout << person.getAge() << endl;
二、析构函数
构造函数和析构函数时类体中定义的比较特殊的两个成员函数,他们都没有返回值。
析构函数名标识符就是在类名前面加“~”符号。
构造函数主要是用来在对象创建时,给对象中的一些数据成员赋值,即初始化对象。
然而,析构函数恰恰相反,它的功能是用来释放一个对象,在对象删除前,用它来做一些清理工作。
构造函数如下:
char* mName;
Person::Person() {
mName = new char[20];
}
析构函数如下:
Person::~Person() {
delete[] mName;
}
构造函数最先被执行,为 mName 分配空间;
析构函数最后被执行,将 mName 的空间释放;
[本章完...]
网友评论