构造与析构函数
1.构造与析构函数的意义
创建对象是往往需要初始化,但是对象不可以直接访问私有成员,因此C语言中直接赋值的初始化方法行不通,于是C++使用构造函数进行对象的初始化操作。
构造函数的原型声明在public中,名称与类名一致,即:
class class_name{
private:
..
public:
class_name();
};
C++规定,如果程序员不自定义构造函数,会给出一个默认的构造函数(需要注明的是构造函数没有声明类型),默认的构造函数没有任何功能,还需要程序员添加相应的操作。
例如下面这个类:
class Bank
{
private:
int client;
double money;
public:
Bank();//default
Bank(int c,double m);
~Bank();
};
Bank::Bank()
{
client = 0;
money = 0.0;
}
注意到上述例子中,有Bank()的一个重载版本Bank(int c,double m),这也是一个构造函数,是程序员自定义的,带有参数列表,这样,我们在创建新的对象的时候,就可以这样写:
Bank bank1;//不初始化调用默认构造函数
Bank bank2(500,1000.0);//隐式的使用Bank(int c,double m)
Bank bank3 = Bank(200,50.0);//显式的使用Bank(int c,double m)
有意思的是,如果类的声明仅仅给出了B