- 构造函数是创建类对象时必须要调用的函数,析构函数是当对象脱离作用域(eg:类的函数调用完毕)时必须要调用的函数。
- 即使不显式声明,系统也会创建一个缺省的构造函数和析构函数,它们只是保证程序可执行,并不会把类的变量初始化为0。
- 构造函数的函数名与<类名>相同,析构函数的函数名为 ~<类名>。
- 类的构造函数和析构函数一般在类中声明,在可执行文件中实现
- 注意区分assign和initialize的区别,reference,const以及class这类变量只能initialize,不能assign。
/*在.h中声明类*/
class _MyClass
{
public:
_MyClass(); //显式声明构造函数
~_MyClass(); //显式声明析构函数
private:
const int a;
int b;
int *ref_a;
};
/*在.cpp中以assignment的方式实现类的构造函数*/
_MyClass::_MyClass(int temp)
{
a=temp; //OK!
b=temp; //Error!const不能通过assignment来实现
ref_a=temp; //Error!reference不能通过assignment来实现
}
/*在.cpp中以initializer的方式实现类的构造函数*/
_MyClass::_MyClass(int temp):a(temp),b(temp),ref_a(temp)
{
//Initialization success
}