C++对象的构造与析构
程序员文章站
2022-03-23 12:08:43
...
创建一个对象时,常常需要作某些初始化的工作,例如对数据成员赋初值。注意,类的数据成员不能在声明类时初始化。
为了解决这个问题,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");
}
上一篇: STL