📄 inheritdemo.cpp
字号:
// InheritDemo.cpp : 演示类的继承
#include <stdio.h>
#include <string.h>
class Shape
{
public:
void SetName(char *name);
char *GetName();
//下面定义一个构造函数
Shape();
//下面定义一个析构函数
~Shape();
protected:
char *name;
};
class PointShape : public Shape
{
public:
int x;
int y;
bool Equals(PointShape *p);
//下面定义一个构造函数
PointShape();
//下面定义一个析构函数
~PointShape();
};
//---------Shape类的实现代码------------
char* Shape::GetName()
{
return name;
}
void Shape::SetName(char *name)
{
strcpy(this->name, name);
}
//实现构造函数
Shape::Shape()
{
printf("Shape类的构造函数被调用\n");
name = new char[20];
}
//实现析构函数
Shape::~Shape()
{
printf("Shape类的析构函数被调用\n");
if (name != NULL)
{
printf("调用(%s)的析构函数\n", name);
delete name;
name = NULL;
}
}
//---------PointShape类的实现代码------------
bool PointShape::Equals(PointShape *p)
{
return ((p->x == x) && (p->y == y));
}
//实现构造函数
PointShape::PointShape()
{
printf("PointShape类的构造函数被调用\n");
}
//实现析构函数
PointShape::~PointShape()
{
printf("\nPointShape类的析构函数被调用\n");
}
int main(int argc, char* argv[])
{
//定义第一个点
PointShape *p1 = new PointShape();
p1->x = 100;
p1->y = 100;
p1->SetName("第一个点");
//定义第二个点
PointShape *p2 = new PointShape();
p2->x = 200;
p2->y = 100;
p2->SetName("第二个点");
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 + -