c++中的类和对象_构造和析构
构造:创建对象时对其进行初始化工作
析构:销毁对象时对其进行清理工作
注意:1、一般需要人为提供,若无提供编译器会自动提供(不做任何操作),无需人为调用调用时编译器自动调用
2、构造函数:函数名与类名一致无返回值不能写void可易有参数可用重载
3、析构函数:函数名等于类名前加~无返回值不能写void不能有参数不能重载
构造函数的分类: 参数:有参构造、无参构造 类型:拷贝构造和普通构造
注意:1、拷贝函数的写法:person(const person & obj){};
2、调用拷贝函数的时机:旧对象初始化新对象(形参为对象,返回值为局部对象)
3、默认情况下编译器将增加3个函数(无参构造、拷贝构造、析构函数),如果自定义了拷贝函数将不再提供任何默认的构造函数,如自定义了普通函数则不提供默认无参构造
4、默认的拷贝函数是简单的值拷贝,调用无参构造是不能使用括号法
5、如果创建对象时不能调用对应构造函数将无法创建对象
匿名对象:无名,生命周期在当前行,定义时不能用括号法调用拷贝构造函数
构造函数的调用方法: 括号法、显示法、隐式法(通常使用括号法)
explicit:该关键字使调用构造函数时不能使用隐式法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!