构造函数
在C++类中定义与类名相同的成员函数叫做构造函数;
构造函数可以带参也可以无参,而且该函数没有返回类型;
在一般情况下运行程序时编译器会自动调用构造函数,特殊情况下需要人工调用。
下面是类中的无参构造函数:
class Test {
public:
Test() {
...
}
}
带参构造函数:
class Test {
private:
int num;
public:
Test(int i) {
this->num = i;
}
}
拷贝构造函数
拷贝构造函数是一种特殊的构造函数,函数名与类名一致,它必须由一个参数,该参数是本类的引用变量。
代码示例:
class Test {
private:
int num;
public:
Test(int i) {
this->num = i;
}
Test(Test & t) {
num = t.num;
}
}
int main() {
Test aTest(10);
Test bTest = aTest;
return 0;
}
系统会为bTest分配了空间并把aTest复制给bTest。这说明相同类型的类对象由拷贝构造函数来完成彼此之间赋值。
析构函数
在C++类中又可定义一个特殊成员函数来清理对象,该函数叫做析构函数;
析构函数没有任何返回类型也没有任何参数;
析构函数在程序结束时由编译器自动调用;
代码示例:
class Test {
public:
~Test() {
}
}
总结
- 构造函数用于初始化对象;
- 构造函数在对象创建时自动调用;
- 拷贝构造函数用于相同类对象赋值;
- 析构函数在程序结束时自动调用;