⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inheritdemo.cpp

📁 《基于Symbian OS的手机开发与应用实践》这本书的配套源码。
💻 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 + -