C++析构函数
来源:互联网 发布:网络直播的定义 编辑:程序博客网 时间:2024/04/28 16:26
析构函数
触发条件:当对象被销毁时,会自动调用析构函数,释放资源。
定义格式:~类名()(没有返回值,不允许加任何参数,故不能重载)
构造函数在对象实例化时自动调用,
析构函数在对象销毁时自动调用。
构造函数没有返回值。
拷贝构造函数没有返回值、不能重载。
析构函数在栈、堆中都能被调用,但是在堆中不会自动调用,必须手动释放内存,否则会造成内存泄漏
类{命名空间;成员函数;数据成员;}数据成员{普通数据成员;string;const成员;静态数据成员;对象成员;}成员函数{属性封装函数;一般功能函数;特殊函数{构造函数{拷贝构造函数;默认构造函数};析构函数}}成员函数{参数默认值;函数重载;引用;const;}对象实例化{堆中实例化;战中实例化;}
Teacher.h
#include<string>#include<iostream>using namespace std;class Teacher{public: Teacher(string _name="q",int _age=25,int _m=100); Teacher(const Teacher &tea); ~Teacher(); void test(Teacher t); void teach(); void setName(string _name); string getName(); void setGender(string _gender); string getGender(); void setAge(int _age); int getAge(); int getMax();private: string m_strName; string m_strGender; int m_iAge; const int m_iMax;};
Teacher.cpp
#include"Teacher.h"using namespace std;/*定义一个Teacher类: 1.自定义析构函数 2.普通方法实例化的对象,在销毁对象时是否自动调用析构函数 3.通过拷贝构造函数实例化对象,在销毁对象时是否自动调用析构函数数据成员: 名字 性别 年龄成员函数: 数据成员的封装函数 授课teach另: 定义可以带最多学生的个数,此为常量*/Teacher::Teacher(string _name,int _age,int _m):m_strName("jim"),m_iAge(10),m_iMax(100){ cout<<"Teacher(string _name,int _age,int _m)"<<endl;}Teacher::Teacher(const Teacher &tea):m_strName("jim"),m_iAge(10),m_iMax(100){ cout<<"Teacher(const Teacher &tea)"<<endl;}Teacher::~Teacher(){ cout<<"~Teacher()"<<endl;}void test(Teacher){}void Teacher::teach(){ cout<<"现在上课"<<endl;}void Teacher::setName(string _name){ m_strName=_name;}string Teacher::getName(){ return m_strName;}void Teacher::setGender(string _gender){ m_strGender=_gender;}string Teacher::getGender(){ return m_strGender;}void Teacher::setAge(int _age){ m_iAge=_age;}int Teacher::getAge(){ return m_iAge;}int Teacher::getMax(){ return m_iMax;}int main(){ Teacher t1; Teacher t2=t1; Teacher t3(t1); test(t1); Teacher *p=new Teacher(); delete p; return 0;}
Teacher(string _name,int _age,int _m)Teacher(const Teacher &tea)Teacher(const Teacher &tea)Teacher(const Teacher &tea)~Teacher()Teacher(string _name,int _age,int _m)~Teacher()~Teacher()~Teacher()~Teacher()
0 0
- 析构函数(C#)
- C++--------析构函数
- c++::析构函数
- C++-析构函数
- 构造函数和析构函数【c++】
- c++-构造函数与析构函数
- C++-构造函数,析构函数
- [c++]构造函数和析构函数
- C++--构造函数与析构函数
- 【C#】构造函数和析构函数
- 【c#】—架构函数&&析构函数
- 【C++】构造函数和析构函数
- 【C++】构造函数和析构函数
- C++(构造函数&&析构函数)
- 【C#】构造函数&析构函数
- 【c++】构造函数与析构函数
- 【C++】类构造函数 & 析构函数
- C++:构造函数和析构函数
- (Mysql 六)事务
- 在Servlet的GenericServlet类中为什么有两个init()方法
- Android开发——SD卡_扫描SD卡中视频、音频文件
- android修改静态ip(支持3.x,4.x,5.x)
- 1006 Sign In and Sign Out (25)
- C++析构函数
- java读写txt文件
- Composer: The openssl extension is missing, which means that secure HTTPS transfers are impossible.
- RCTViewManger
- 1007. Maximum Subsequence Sum (25)
- PAT_1017. Queueing at Bank
- 阿里云Centos7.2搭建java开发环境 jdk tomcat mysql注意事项
- 1008 Elevator (20)
- MAVEN 编译spring boot + mybatis 出现 Error parsing Mapper XML.