欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

类和对象——对象的初始化和清理

时间:2023-05-26
构造函数和析构函数

若人为不实现,编译器会自动实现但函数内为空

构造函数:创建对象时为对象的成员属性赋值 类名(){}

没有返回值可以有参数,可以重载系统自动调用,不用手动调用,并且只调用一次

析构函数:对象销毁前清理工作 ~类名(){}

没有返回值不可以有参数,无法重载系统自动调用,不用手动调用,并且只调用一次 构造函数的分类及调用

按参数分类 无参构造(默认构造)和有参构造
按类型分类 普通构造和拷贝构造函数

class test {public://无参构造 test() {cout <<"test的无参构造函数调用"<

调用:

括号法:

test p1;//**test p2(10);test p3(p2);

注意:调用默认构造函数时不要加()。因为编译器会认为这是一个函数声明

显示法:

test p1;test p2=test(10);test p3=test(p2);

若=右边单独出现test(10);称为匿名对象 特点:当前行执行结束,系统会立即回收匿名对象
注意:不要利用拷贝构造函数 初始化匿名对象。因为编译器会认为重定义对象声明

隐式转换法:

test p2=10;//有参构造test p3=p2;//拷贝构造

拷贝构造函数的调用时机 使用一个已经创建完的对象来初始化另一个

Person p1;Person p2(p1);

值传递的方式给函数参数传值

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。