1、析构函数使用例子

#include <iostream>
#include <string.h>
using namespace std;

class CPerson
{
public:
        CPerson();
        ~CPerson();
        char *m_pMessage;
        void showStartMessage();
        void showFrameMessage();
};

CPerson::CPerson()
{
    m_pMessage = new char[100];
}

CPerson::~CPerson()
{
    delete[] m_pMessage;
}

void CPerson::showStartMessage()
{
    strcpy(m_pMessage,"Welcome to Linux");
    cout << m_pMessage << endl;
}

void CPerson::showFrameMessage()
{
    strcpy(m_pMessage, "****************");
    cout << m_pMessage << endl;
}

int main(int argc, char *argv[])
{
    CPerson person;
    person.showFrameMessage();
    person.showStartMessage();
    person.showFrameMessage();
    return 0;
}

 

2、构造函数和析构函数的调用顺序

#include <iostream>
#include <string.h>

using namespace std;

/*  定义父类  */
class CEmployee
{
public:
    CEmployee()
    {
        cout <<" CEmployee的构造函数被调用"<<endl;
    }
    ~CEmployee()
    {
        cout <<" CEmployee的析构函数被调用"<<endl;
    }
};

/* 子类Operator公有继承CEmployee */
class COperator : public CEmployee
{
public:
    COperator()
    {
        cout <<" COperator的构造函数被调用"<<endl;
    }
    ~COperator()
    {
        cout <<" COperator的析构函数被调用"<<endl;
    }
};


int main(int argc, char *argv[])
{
    COperator O1;
    return 0;
}

 

3、注意事项

  • 在一个类中只能定义一个构造函数;
  • 析构函数不能重载;
  • 析构函数不能return,也不需要void修饰;
posted on 2025-04-26 14:25  轩~邈  阅读(35)  评论(0)    收藏  举报