【C++】类的构造函数&析构函数
构造函数&析构函数
说明:完成对象的初始化和清理工作,由编译器强制要求。如果不提供构造和析构函数,编译器会提供,但都是空实现
析构和构造是一对相反的过程,对象被创建时调用构造函数,对象被销毁时调用析构函数
例子:
1 class Person { 2 public: 3 Person() { 4 std::cout << "Person 的构造函数" << std::endl; 5 } 6 7 ~Person() { 8 std::cout << "Person 的函数" << std::endl; 9 } 10 };
-
构造函数
作用:初始化对象,创建对象时为对象的成员属性赋值,由编译器自动调用,无需手动调用
语法: 1 类名(参数){函数体}
遵循规则:
- 函数名必须与类名相同
- 没有返回值,也不写void
- 可以有参数,因此可以发生重载
例子:
1 class Person { 2 public: 3 Person() { 4 std::cout << "Person 的构造函数" << std::endl; 5 }
6 };
-
析构函数
作用:释放对象,对象销毁前系统自动调用,无需手动调用
语法: 1 ~类名(){函数体}
遵循规则:
- 函数名必须与类名相同
- 没有返回值,也不写void
- 不可以有参数,因此不可以发生重载
例子:
1 class Person { 2 public: 3 ~Person() { 4 std::cout << "Person 的析构函数" << std::endl; 5 } 6 };
最后编辑于2022-06-17 10:28:21
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)