/*
有关构造函数
构造函数(constructor)来处理对象的初始化。构造函数是一种特殊的成员函数,
与其他成员函数不同,不需要用户来调用它,而是在建立对象时自动执行。1、构造函数定义及调用
1)C++中的类可以定义与类名相同的特殊成员函数,这种与类名相同的成员函数叫做构造函数;
2)构造函数在定义时可以有参数;
3)没有任何返回类型的声明。
2、构造函数的调用
自动调用:一般情况下C++编译器会 自动调用 构造函数
手动调用:在一些情况下则需要手工调用构造函数有关析构函数
3、析构函数定义及调用
1)C++中的类可以定义一个特殊的成员函数清理对象,这个特殊的成员函数叫做析构函数
语法:~ClassName()
2)析构函数没有参数也没有任何返回类型的声明
3)析构函数在对象销毁时自动被调用
4)析构函数调用机制
C++编译器自动调用
*/
#define _CRT_SECURE_NO_WARNINGS
#include "string"
#include <stdexcept>
#include <iostream>
#include <iomanip>
using namespace std;
#if 1
class Test
{
public:
Test()//无参数构造函数
{
cout << "我是构造函数 被执行了" << endl;
p = (char *)malloc(100);
strcpy(p, "hello world");
a = 10;
}
void print()
{
cout << p << endl;
cout << a << endl;
}
~Test()//析构函数
{
if (p != NULL)
{
free(p);
}
cout << "我是析构函数 被调用了" << endl;
}
private:
int a;
char *p;
protected:
};
//给对象搭建一个舞台,研究对象的行为
//注意对象的生命周期,只有生命周期结束的时候,才会调用析构函数
void test()
{
//先创建的对象后释放
Test t1;
t1.print();
printf("分隔符\n");
Test t2;
t2.print();
}
#endif