构造函数的分类及调用
-
按照参数分类
1.无参构造(默认构造) 2.有参构造
-
按照类型分类
1.普通构造函数2.拷贝构造函数
-
无参构造写法和调用
Person p1; 注意不能写Person (),因为编译器认为这个是函数声明
-
有参构造函数写法 和调用
Person p2(10) 或者Person p2=Person(10)Person (10);匿名对象,执行当前行后释放这个对象
-
拷贝构造函数
Person (const Person &p)Person p1(p2)或者 Person p1=Person(p2);不能用拷贝构造函数初始化匿名对象如果写成Person (p1) 这种写法等价于 Person p1写到右值可以做拷贝构造函数
-
Person p7 = 100; //相当于调用了 Person p7 =Person(100),隐式类型转化
Person p8 = p7; //相当于Person p8=Person(p7) -
拷贝构造函数调用时机
1 用已经创建好得对象来初始化新得对象2 以值传递得方式给参数传参3 以值方式返回局部对象
-
构造函数的调用规则
1 如果提供了有参的构造,系统不会提供默认的构造,还是会提供拷贝构造函数2 如果提供了拷贝构造函数,系统不会提供其他的构造函数了。3.系统默认给一个类提供3个函数 默认构造 ,拷贝构造,析构函数