C和C++的区别

C语言是面向过程的,C++是面向对象的,而C和C++的区别也就是面向过程和面向对象的区别。

面向过程(OP)和面向对象(OO)其实是相辅相成的,面向过程是以“事件”为中心的,分析完成这个事件需要做的工作,最后用函数来实现,并按照顺序调用。而面向对象是以“对象”为中心,建立对象的目的不是为了完成某个工作,而是为了描述某个事物在整个解决问题中的行为。

总之,面向过程的思维是分析综合,面向对象的思维是构造。

举个简单的例子,面型过程就像一份蛋炒饭,面向对象就像一份盖浇饭。
蛋炒饭的制作过程我们不关心,只知道最后一道工序是将鸡蛋和米饭拌在一起,而盖浇饭不一样,米饭和菜是分离的,我们喜欢吃什么菜就可以盖上什么菜,不喜欢就换掉。

蛋炒饭的特点是入味、搅拌均匀、吃起来香,但是同样也有缺点,就是如果你不吃鸡蛋,那么唯一的做法就是把这份饭倒掉,重新做一份。但是盖浇饭就会比较省时间,假设你不喜欢上边的才,就可以将菜换掉。但缺点是不均匀,没有蛋炒饭那么入味。

那么到底哪个好?这是分情景的。

专业的来讲,就是蛋炒饭是将鸡蛋和菜混合,耦合度高,可维护性差;盖浇饭将菜和饭分离,耦合度低,可维护性高。

软件工程追求的的目标之一就是可维护性,包括三个方面:可理解性、可测试性、可修改性。面向对象就增强了程序的可维护性。

总结一下:

面向过程的性能比较高,因为面向对象中类调用时需要实例化,系统开销较大,比较消耗资源。但是面向过程没有面向对象易维护、易扩展、易复用。面向对象编程有继承、封装、多态等特性,可以设置出低耦合的系统。

  • 面向对象是将事物进行抽象化。
  • 面向过程是自顶向下的编程。
  • 面向对象必须先建立抽象模型,最后直接使用模型。

以上是实质上的区别,也可以说是编程模式的区别,下面说一说其他区别。


  • 关键字:C99中32个关键字,C++98中63个关键字。
  • 源文件后缀:C语言后缀.c、C++后缀.cpp,在Linux下C++后缀也可以为.cc或.cxx。
  • 语法不同

1.函数返回值:C没有写返回值,默认int;C++没有写会报错;
2.函数参数列表:如果一个函数没有参数,C中可传可不传,C++中如果传就会出错,C++支持缺省参数,包括:全缺省、半缺省(只能从右向左依次给出)。一般缺省参数在声明处给出。
3.函数名不同,C++支持函数重载,减少函数名污染。C++底层函数是用函数名+参数列表标记的,C语言是用函数名标记的。
4.引用
5.命名空间:有效缓解命名冲突的问题。
6.输入输出
7.类和对象

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值