C++是面向对象的(object oriented programming—OOP)。强调对象,由对象实施动作。
C是面向过程的(procedure oriented programming—POP)。强调执行的过程。
总结起来就是:
面向对象是首先抽象出各种对象(各种类),把数据和方法都封装在对象中(类),然后各个对象之间发生相互作用。
面向过程是将问题分解成若干步骤(动作),每个步骤(动作)用一个函数来实现,在使用的时候,将数据传递给这些函数。
举个栗子:下雨了,人打开雨伞
C++是这么做的:涉及到三个对象:雨,人,伞。两个动作:雨下,人打开伞。
首先三个对象,即定义三个类。雨对象Rain,它有下雨的方法fall();人对象Person,他有打开的方法open();伞对象Umbrella;
Rain
{
fall();
}
Person
{
open();
}
main()
{
Rain rain;
Person person;
Umbrella umbrella;
rain.fall();
person.open(umbrella);
}
而C是这么做的:
面向过程:两个过程-> ① 下雨了; ② 人打开雨伞;分别对应两个函数
main()
{
rain();
open(umbrella);
}
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
可以明显地看出,面向对象是以功能来划分问题,而不是步骤。同样是绘制棋局,这样的行为在面向过程的设计中分散在了总多步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。
C语言是一种面向过程的编程语言,而C++却是一种面向对象的编程语言。在C++程序里,数据和对数据的处理都被封装在了一个对象里。
在面向对象的世界里,用类一个个的构造出对象来,在主程序里调用的是一个个对象的行为。