1.按照参数类型可分为有参构造和无参构造
# include<iostream>
using namespace std;
class Person
{
public:
Person() // .....1
{
cout << "person无参构造函数的调用" << endl;
}
Person(int a) //.... 2
{
cout << "person有参构造函数的调用" << endl;
}
Person(const Person &p) //....3
{
cout << "person拷贝构造函数的调用" << endl;
}
~Person() //.....4
{
cout << "Person析构函数的调用” << endl;
};
int main()
{
system("pause");
return 0;
}
其中,按参数类型可分为无参构造和有参构造,分别对应1和2;
按函数类型分为普通构造函数和拷贝构造函数,分别对用1、2和3;
2.构造函数调用方式分类
test01()
{
//括号法
Person p1;//默认构造函数调用 .....1
Person p2(10); //有参构造函数调用 .....2
Person p3(p2); //拷贝构造函数调用 ....3
//显示法
Person p1;
Person p2 = Person(10)
Person p3 = Person(p2) //单个右值为匿名函数,其特点是
//隐式转换法
Person p1 = 10 // 相当于 person p1 = Person(10)
Person p2 = p1 // 相当于 Person p2 = person(p1)
}
调用方式可分为:括号法、显示法、隐式转化法。