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
原创粉丝点击