当前位置:首页 » 编程软件 » c的面向对象编程

c的面向对象编程

发布时间: 2022-05-04 23:35:13

c语言中的“面向对象的编程思想”是什么意思

面向对象的编程思想是这样的:万事万物皆对象,说白了就封装.
将程序所有用的所有东西都封装起来.
简单的说:你需要一辆车。
非面向对象的程序是这个样的:你需要定义一个车属性(即变量):颜色,时速,车的类型。
当然这是一辆车你可以这样定义:但是如果10辆车呢,你需要定义30个不同名的变量,复杂可维护性极差,有时候自己都搞不清哪个变量对应的那辆车。
但是面向对象的是容易多了,定义一个车的类:颜色,时速,车的类型。
要10辆车,定义10辆车的变量就可以,10两车就拥有颜色,时速,车的类型的属性了。你只需要操作者10个变量就等于操作10车。

㈡ 在C语言中,什么叫做面向对象,什么叫做面向过程

面向对象和面向过程都是编程思想,分别以对象和过程为主要目标进行编程。

1、面向对象:面向对象(ObjectOriented)是一种软件开发方法。ObjectOriented的概念和应用已经超越了编程和软件开发。面向对象是一种理解和抽象现实世界的方法。它是计算机编程技术发展的产物。

2、面向过程:面向过程(Procere Oriented)是一种以过程为中心的编程思想。面向过程都是以正在发生的过程为主要目标进行编程,与面向对象明显的不同就是封装、继承、类。

(2)c的面向对象编程扩展阅读:

面向对象和面向过程的区别:

1、分析问题方式的不同:

面向过程是分析解决问题所需的步骤,然后使用函数逐步实现这些步骤,使用时一个接一个。

面向对象是将问题事务分解为各种对象。对象的建立不是为了完成一个步骤,而是为了描述一个事物在解决问题的整个过程中的行为。

2、解决问题的方法的不同:

面向过程其实是最为实际的一种思考方式,就算是面向对象的方法也是含有面向过程的思想。可以说面向过程是一种基础的方法。它考虑的是实际地实现。一般的面向过程是从上往下步步求精,所以面向过程最重要的是模块化的思想方法。

对比面向过程,面向对象的方法主要是把事物给对象化,对象包括属性与行为。当程序规模不是很大时,面向过程的方法还会体现出一种优势。

参考资料来源:网络-面向对象

参考资料来源:网络-面向过程

㈢ c语言是面向过程的还是面向对象的

c语言是面向过程的。面向过程是着重于其中程序设计的算法、语言的运用,如设计不同功能的函数。

C++是面向对象的。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

c语言的特点:

1、代码具有较好的可移植性

C语言是面向过程的编程语言,用户只需要关注所被解决问题的本身,而不需要花费过多的精力去了解相关硬件,且针对不同的硬件环境,在用C语言实现相同功能时的代码基本一致,不需或仅需进行少量改动便可完成移植,这就意味着,对于一台计算机编写的C程序可以在另一台计算机上轻松地运行,从而极大的减少了程序移植的工作强度。

2、可生成高质量、目标代码执行效率高的程序

与其他高级语言相比,C语言可以生成高质量和高效率的目标代码,故通常应用于对代码质量和执行效率要求较高的嵌入式系统程序的编写。

㈣ 如何用C语言实现面向对象

可以通过以下方法实现面向对象:

1、封装

封装就是把数据和方法打包到一个类里面。其实C语言编程者应该都已经接触过了,C 标准库 中的 fopen(), fclose(), fread(), fwrite()等函数的操作对象就是 FILE。

数据内容就是 FILE,数据的读写操作就是 fread()、fwrite(),fopen() 类比于构造函数,fclose() 就是析构函数。

2、继承

继承就是基于现有的一个类去定义一个新类,这样有助于重用代码,更好的组织代码。在 C 语言里面,去实现单继承也非常简单,只要把基类放到继承类的第一个数据成员的位置就行了。

例如,我们现在要创建一个 Rectangle 类,我们只要继承 Shape 类已经存在的属性和操作,再添加不同于 Shape 的属性和操作到 Rectangle 中。

3、多态 C++

语言实现多态就是使用虚函数。在 C 语言里面,也可以实现多态。 现在,我们又要增加一个圆形,并且在 Shape 要扩展功能,我们要增加 area() 和 draw() 函数。

但是 Shape 相当于抽象类,不知道怎么去计算自己的面积,更不知道怎么去画出来自己。而且,矩形和圆形的面积计算方式和几何图像也是不一样的。

4、虚表和虚指针

虚表(Virtual Table)是这个类所有虚函数的函数指针的集合。

虚指针(Virtual Pointer)是一个指向虚表的指针。这个虚指针必须存在于每个对象实例中,会被所有子类继承。

5、在构造函数中设置vptr

在每一个对象实例中,vptr 必须被初始化指向其 vtbl。最好的初始化位置就是在类的构造函数中。

事实上,在构造函数中,C++ 编译器隐式的创建了一个初始化的vptr。在 C 语言里面, 我们必须显示的初始化vptr。下面就展示一下,在 Shape 的构造函数里面,如何去初始化这个 vptr。

㈤ 如何用C语言实现面向对象编程

相对于PASCAL、C一类的语言都是面向过程的语言。它的运行顺序是固定的(按顺序执行)。但C++面向对象,也就是说它的运行随着你的触发。假如你现在按了一个按钮,那么程序就会运行触发按钮的相应函数,所以它并不是按顺序执行的。

㈥ C语言能不能面向对象

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语言的功能,而在设计方面却着重于对象的处理,获得更好地性能。
面向过程与面向对象的区别,由“如何把大象装进冰箱”来看:
一、面向过程
为了把大象装进冰箱,需要3个过程。
/* 思路:
1、把冰箱门打开(得到打开门的冰箱)。
2、把大象装进去(打开门后,得到里面装着大象的冰箱)。
3、把冰箱门关上(打开门、装好大象后,获得关好门的冰箱)。
*/
//每个过程有一个阶段性的目标,依次完成这些过程,就能把大象装进冰箱。
//写法一:
1:冰箱开门(冰箱)。
2:冰箱装进(冰箱,大象)。
3:冰箱关门(冰箱) 。
//写法一变体:
1:(冰箱开门 冰箱)。
2:(冰箱装进 冰箱大象)。
3:(冰箱关门 冰箱)。
//写法二:
冰箱关门(冰箱装进(冰箱开门(冰箱),大象))。
//写法二变体:
(冰箱关门 (冰箱装进 (冰箱开门 冰箱) 大象))。
二、面向对象
为了把大象装进冰箱,需要做三个动作(或者叫行为)。每个动作有一个执行者,它就是对象。
/* 思路:
1、冰箱,你给我把门打开。
2、冰箱,你给我把大象装进去(或者说,大象,你给我钻到冰箱里去)。
3、冰箱,你给我把门关上。
*/
//依次完成这些动作,你就可以把大象装进去。
//写法一:
1:冰箱.开门()
2:冰箱.装进(大象)
3:冰箱.关门()
//写法二:
冰箱.开门().装进(大象).关门()

㈧ C语言可以实现面向对象编程吗

c
语言是面向过程的,它不能面向对象,但c++能实现面向对象的程序设计,这涉及到了类和命名空间,只有学了才能具体了解。

㈨ C语言什么是面向过程,什么是面向对象

满意答案冬夜读书示子聿11级2011-10-29何必理会这个,别指望一个新人会理解面向对象。当你开始工作两三年后,你自然而然就理解什么叫面向对象。别整天听人说面向对象有多么牛,面向对象的基础是面向对程。满意答案大头鬼4级2011-10-29C语言是面向过程。你了解下面向对象就知道区别了,“对象”大概就是一个程序的零部件,就是把一些函数、字段、属性(你暂时就想是C语言的一些函数和变量吧)包装在一起,这么做的好处是什么,利于重用,便于管理,好理解,总之好处一坨。就好比一辆车的一个部件,要换就换吗,不会影响到整个程序的框架吧。
要深入还是比较抽象的,建议学C的时候顺便看下C++或者其他面向对象语言
从网上找个项目看看。实践学的比较快。

热点内容
梦三国2副本脚本 发布:2025-05-14 19:29:58 浏览:859
phpxmlhttp 发布:2025-05-14 19:29:58 浏览:432
Pua脚本 发布:2025-05-14 19:24:56 浏览:448
苹果像素低为什么比安卓好 发布:2025-05-14 19:13:23 浏览:459
安卓机微信怎么设置红包提醒 发布:2025-05-14 19:00:15 浏览:271
androidsystem权限设置 发布:2025-05-14 18:56:02 浏览:970
mq脚本 发布:2025-05-14 18:45:37 浏览:25
仙境传说ro解压失败 发布:2025-05-14 18:45:01 浏览:868
betweenand的用法sql 发布:2025-05-14 18:39:25 浏览:250
tplink摄像头存储卡格式化 发布:2025-05-14 18:37:08 浏览:347