关于c语言中的oop功能的混淆,我的陈述证明c中还有许多oop功能

时间:2012-05-09 16:45:27

标签: c

oop功能

  1. class:但是c中也有结构和联合
  2. 运算符重载:我们可以写0.1 + 3.4或1 + 3或'a'+'b'这是什么,+运算符用于整数,浮点数和字符加法,所以它是一种运算符重载? / LI>
  3. 继承:在c中,当我们使用像include<iostream.h>这样的包含在另一个文件中的任何文件时,我们将iostream文件包含在另一个文件中,我们正在实现 继承也在c。

    简而言之,我的问题是每个面向对象的问题我都有一些争论,所以任何人都可以帮助我清除所有面向对象的特征与c语言的比较。

    c不是面向对象的语言,但我的上述论证证明,c也是面向对象的语言

    所以我希望与c语言相比,更加注重面向对象的功能。

2 个答案:

答案 0 :(得分:3)

C不支持面向对象编程作为一种语言,但并不意味着你不能在代码中实现面向对象的概念(例如封装,信息隐藏,多态)。你只需要更加努力地去做,因为语言对你没有帮助。

Bjarne Stroustrup必须做很多工作才能在C语言之上添加对OOP的语言支持.C ++并不是一项微不足道的成就。

答案 1 :(得分:2)

1一个类不仅仅是一个联合或一个结构,一个类可以包含变量和方法(代码),一个联合或一个结构都不能包含逻辑。

  1. 运算符重载不是严格的oo功能,java没有运算符重载。你的例子是有限的重载,你不能使structA + structB在c

  2. 中工作
  3. 加载库和继承之间存在很大差异。继承允许您创建具有父级所有行为的子类型,然后允许您修改它们或添加更多功能。你可以在C中做到这一点,但这将更加困难和复杂

  4. 您对OO概念的理解似乎相当有限,我会阅读一些基本的OO教程来获取概念。