从最简单直白的角度 浅谈面向过程与面向对象的区别

面向过程与面向对象

C语言是面向过程的语言,关注的是解决问题的过程与方法。  C++可以说是C语言的延伸与发展,不仅继承了C的一些优势,而且还多了一样非常重要的东西——面向对象

那面向过程和面向对象有什么区别呢? 这里我拿外卖产业简单举个例子。

我们知道,外卖产业需要四方的支持才能产生:顾客、商家、骑手、平台。 面向过程就类似研究如何实现这一过程的每个步骤的运转成立。 先让顾客下单,平台处理向骑手发布任务,骑手接单到商家取餐,最后送至顾客。它考虑的是每一个过程的如何实现。

面向对象是分模块来完成,顾客、平台、商家、骑手四个模块,分别干什么,让他们各自处理各自的事情,是以对象为基准来实现运转。

如果从程序的实现角度来说C语言这种面向过程的就必须要将每一方的行动做成函数,逐一实现

面向过程则可以将每一方封装起来,不管是他的信息还是行为,都可以全部装到一起,没必要一个动作一个动作写成函数再调用,可以全部放到一个类下面。

意思就是,C++的结构下,可以将信息(如:人的年龄、性别等变量)和动作(函数)放到一个类下,这是C语言做不到的。

以学生、老师开学报到为例(C语言实现方法):

struct stu
{
	char name[20];
	int age;
	char ID[19];
	//...
};
struct teacher
{
	int name;
	int age;
	char ID[19];
	//...
};

void StuReturnSchool(struct stu* ps)
{
	//...
}

void TeaReturnSchool(struct teacher* pt)
{
	//...
}

void StuRegisterSchool(struct stu* ps)
{
	//...
}

void TeaRegisterSchool(struct teacher* pt)
{
	//...
}

如果是C语言,就需要先定义老师和学生的结构体,将信息放到里面,再分别调用函数实现报到返校动作。

但是这样其实挺麻烦,比如要制做这样一个报到返校的网页,这种写法需要额外制作一些多余的按钮:学生登录、老师登录;学生报到、老师报到.......明明只需要一个按钮,登录、报到就可以了,点进去以后学生归学生类,老师归老师类。

如果还有教辅人员等那就更麻烦了,还需要设其他额外入口,这样入口一下就设置了好几个,并且写代码调用的时候也很麻烦,不论是需要记得定义的函数名,或者是相类似接口的重复定义都是问题。

因此,面向对象的优势此时就被体现出来了。

我们可以将老师作为一个整体封装到一个类下面。里面不仅存老师的信息,也存老师的登录、报到等一系列动作的函数接口。这样就方便很多了,而且看上去也是一目了然。

class stu
{
	char name[20];
	int age;
	char ID[19];
	//...
	void StuReturnSchool(stu* ps)
	{

	}
	void StuRegisterSchool(stu* ps)
	{

	}
};

class teacher
{
	int name;
	int age;
	char ID[19];
	//...
	void TeaReturnSchool(teacher* pt)
	{

	}
	void TeaRegisterSchool(teacher* pt)
	{

	}
};

一个人是谁、要干什么都在一个集合里面,非常清楚,这也是面向对象的一个优势。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值