一卷旌收千骑虏,万全身出百重围。这篇文章主要讲述构造函数和析构函数相关的知识,希望能为你提供帮助。
先来创建一个类名:
class Person
{
Person(){//构造函数
}
~Person(){//析构函数
}
}
构造函数用于创建对象时进行初始化,析构函数用于对象销毁前进行清理工作。
这两个函数都是必须要有的,如果没写,编译器会自动帮我们写上,但都是空实现。
关于构造函数
按参数分为有参构造和无参构造
Person(int a){}//有参构造
Person(){}//无参构造
编译器默认给我们提供的是无参构造
按类型分为普通构造和拷贝构造
Person(){} //普通构造
Person(const Person & p){}//拷贝构造
编译器提供的析构函数是空实现,所以什么都没有输出。
构造函数:编译器调用三个函数:无参构造函数(空实现),析构函数(空实现),拷贝构造函数(对属性值进行赋值)。
关于书写构造函数:
如果书写了无参构造函数,编译器会提供拷贝构造函数。
如果书写了有参构造函数,编译器不会提供无参构造函数,但会提供拷贝构造函数。
如果书写了拷贝函数,编译器不会提供无参、有参构造函数。
调用的方法:括号法、显示法、隐式转换法。
括号法:
Person p1;
Person p2(10);
Person p3(p1);
显示法:
Person p1;
Person p2=Person(10);
隐式转换法:
Person p1;
Person p2=10;
Person p3=p1;
拷贝函数调用:
1.使用一个已经创建完毕的对象进行初始化。
Person p1;
2.值传递的方式给函数参数传值。
void test(Person p)
{
}
void test01()
{
Person p1;
test(p);
}
3.以值方式返回局部对象。
Person test()
{
Person p1;
return p1;
}
【构造函数和析构函数】如有不对,欢迎指正。
推荐阅读
- OceanBase社区版3.1.0三节点离线部署
- win764位系统u盘打开设置图文详细教程图解
- u盘安装win8图文详细教程图解
- windows xp系统重装图文详细教程图解
- U盘量产工具图文详细教程图解
- 大白菜u盘打开制作图解
- 用u盘装win1064位系统图文详细教程图解
- u盘pe系统制作图解
- u盘pe打开盘制作制作图解