C语言能不能面向对象?

Python027

C语言能不能面向对象?,第1张

C++,objective-c肯定可以。

标准c,普遍的说法是不行。我说我自己的想法,如果编写过面向对象的代码,类这个名词跟用户不陌生吧!类基本上是面向对象编程的精髓。类无非就是,成员数据与成员方法的集合,通过某个指针我们能访问到成员与方法。抽象、继承、多态、重载是类的基本特种。

一般而言,c语言是面向过程的,函数式编程。用标准c求解问题。无非就是,定义结构体、共用体、枚举、基本数据类型等,再定义一堆函数,来访问操作这些数据。如果吧这些东西,划分成在适当的文件,授予适当的权限。c语言的每个源文件就相当于类。

抽象、多态,利用c99的无类型指针很好实现。继承实现难度高,实现思想是利用指针可访问到父对象成员。重载,c实现更简单!此段别认为我是在瞎B吹牛。objective-c,swift这两门编程语言,如果你要懂一点。可以看到这个理论的影子。当然这两门语言有专用编译器。跟c实现的面向对象编程有区别。

总结下来,用c实现面向对象,编程,难度大,不是写应用程序开发人员该考虑的。建议别往这方向编写程序。如java,c++,swift等等这些语言,能面向对象编程:

1、编译器的难题别人解决了;

2、很多很多的基础功能,按系统类库已经提供,我们不用去编写。

C语言本质上是面向过程的设计语言。

它缺少面向对象的特征:封装,继承,多态和抽象。

当然了,C语言的现代方法也可以面向对象,或者使用C语言的增强版本C++,都是面向对象的。

两者是兼容的,c是c++的一个子集

c++支持面向对象功能的程序设计语言,而c语言是面向过程的程序设计语言,它不但具有c语言的短小精练,使用方便的特点,还在原来的基础上,使类型更严格,使用更方便。

简单来讲,c++是c的进阶,语法基本相同,不过很多用词不同,例如输出语句,c使用的是“prift”,而c++是“cout”

在语法上,c++更为严谨,它是类和函数的集合,即允许类体外的函数存在

在运算符上,c++增加了::,*,.,->以及动态内存方面的new和delete

c++还引进了内联函数的概念,减少了宏定义的使用