C++对象的构造与析构

    创建一个对象时,常常需要作某些初始化的工作,例如对数据成员赋初值。注意,类的数据成员不能在声明类时初始化。

    为了解决这个问题,C++编译器提供了构造函数,来处理对象的初始化。构造函数是一种特殊的成员函数,与其他成员函数不同,不需要其他用户来调用它,而是在建立对象时自动执行。

    构造函数和析构函数有关概念:

    构造函数

    1、构造函数定义及调用

        1)C++中的类可以定义与类名相同的特殊成员函数,这种与类名相同的成员函数叫做构造函数

        2)构造函数在定义时可以有参数

        3)没有任何返回类型的声明

    2、构造函数的调用

        自动调用:一般情况下,C++编译器会自动调用构造函数

        手动调用:在一些情况下则需要手工调用构造函数

    析构函数

    1、析构函数的定义及调用

        1)C++中的类可以定义一个特殊的成员函数清理对象,这个特殊的成员函数叫做析构函数;语法为~classname();

        2)析构函数没有参数也没有任何返回类型的声明

        3)析构函数在对象销毁时自动被调用

    2、析构函数调用机制

        C++编译器自动调用

用法演示:

#include<iostream>

using namespace std;

class test

{

public:
          test()
          {
                    int a = 10;

                    p = (char*)malloc(100);

                    strcpy(p, "1111");

                    cout << "p="<<p << endl;

                    cout << "a="<<a<< endl;
          }
          ~test()
          {

                    if (p != NULL)
                    {

                              free(p);

                    }
                    cout << "我是析构函数" << endl;
          }

private:
          int a;

          char *p;
protected:

};

//先构造的函数后析构,后构造的函数先析构

void test1()
{
          test t1;

          cout << "*******************" << endl;

          test t2;
}
int main()
{
          test1();

          system("pause");
}

    

猜你喜欢

转载自blog.csdn.net/error0_dameng/article/details/81948078