对象的初始化和清理是两个非常重要的安全问题,一个对象或者变量没有初始状态,对其使用后果是未知,同样的使用完一个对象或变量,没有及时清理,也会造成—定的安全问题。
C++利用了构造函数和析构函数解决上述问题,这两个函数将会被编译器自动调用,完成对象初始化和清理工作。
构造函数和析构函数的语法
构造函数的分类
构造函数的调用
1、括号法
如下图所示,其调用比较简单,也是最常用的方法:
注意
2、显示法
A p1;//无参构造还是老样子
A p2 = A(10,20);//调用有参构造函数
A p3 = A(p2);//调用拷贝构造函数
注意
3、隐式转换法
A p1;//无参构造还是老样子
A p2 = {10,20};//调用有参构造函数,这是多参数情况,如果有参构造只有一个参数,就不用大括号了。
A p3 = p2;//调用拷贝构造函数