📄 destructordemo.cpp
字号:
// DestructorDemo.cpp : 演示析构函数的定义和使用
//
#include <stdio.h>
#include <string.h>
class PointD
{
public:
int x;
int y;
//字符数组指针,用于保存对象的名字
char *name;
bool Equals(PointD *p);
//下面定义了一个构造函数
PointD(int x, int y);
//下面定义一个析构函数
~PointD();
};
bool PointD::Equals(PointD *p)
{
return ((p->x == x) && (p->y == y));
}
PointD::PointD(int x, int y)
{
this->x = x;
this->y = y;
//创建缺省的名字
name = new char[20];
}
//析构函数实现
PointD::~PointD()
{
printf("调用(%s)的析构函数\n", name);
//删除并将指针置为空指针
if (name != NULL)
{
delete name;
name = NULL;
}
}
int main(int argc, char* argv[])
{
//定义第一个点
PointD *p1 = new PointD(100, 100);
strcpy(p1->name, "第一个点");
//定义第二个点
PointD *p2 = new PointD(200, 100);
strcpy(p2->name, "第二个点");
printf("第一个点的坐标为(%d, %d)\n", p1->x, p1->y);
printf("第二个点的坐标为(%d, %d)\n", p2->x, p2->y);
if (p1->Equals(p2))
{
printf("两个点相同\n");
}
else
{
printf("两个点不相同\n");
}
//删除创建的对象指针
delete p1;
p1 = NULL;
delete p2;
p2 = NULL;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -