什么时候使用C作为面向对象的语言?

时间:2011-11-30 22:19:40

标签: c oop

有很多优秀的答案如何用C模拟面向对象的概念。仅举几例:

何时适合使用此类模拟而不使用本机支持面向对象技术的语言?

高度相关:

3 个答案:

答案 0 :(得分:4)

我会告诉你我知道的一个原因,因为我一直都是这样:

在为独特平台开发软件时,唯一可用的编译器是C编译器。这在嵌入式微控制器领域经常发生。

答案 1 :(得分:2)

再举几个例子:当面向对象看起来很自然时(例如,在VFS中),相当数量的x86 Linux内核正在使用C,就好像它是C ++一样。内核是用汇编和C编写的(如果在3.0内核中没有更改)。内核编码器创建宏和结构,有时甚至命名类似于C ++术语(例如,for_each_xxx),允许它们按照如果进行编码。正如其他人所指出的,如果你开始一个面向对象的重度项目,你永远不会选择C;但是当你调整基于C的代码来添加面向对象的功能时,你可能会这样做。

答案 2 :(得分:1)

当您需要面向对象API的跨平台基础时。一个典型的例子是Apple的Core Foundation。完全是C,它可以很容易移植,但提供了一组非常丰富的不透明对象。

它的灵活性的一个很好的例子是它的许多类型与来自Foundation(一组真正的OO Objective-C库)的那些“免费”桥接。 Core Foundation中的许多类型可以很自然地用在Foundation API中,反之亦然。如果Core Foundation库中没有一些OO概念,很难看到这种工作如此顺利。