当前位置:首页 » 编程语言 » c语言面向对象

c语言面向对象

发布时间: 2022-01-16 06:01:57

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

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

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

c语言的特点:

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

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

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

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

② “C语言”面向过程和面向对象的区别是什么

“C语言”面向过程和面向对象的区别是:面向过程是着重于其中程序设计的算法、语言的运用,如设计不同功能的函数。面向对象,按书上说是在C语言的基础上发展起来的,通俗说也就是更高一级的C语言,也就是C++,保留了大部分C语言的功能,而在设计方面却着重于对象的处理,获得更好地性能。

面向过程与面向对象的区别,由“如何把大象装进冰箱”来看:

一、面向过程

为了把大象装进冰箱,需要3个过程。

/* 思路:

1、把冰箱门打开(得到打开门的冰箱)。

2、把大象装进去(打开门后,得到里面装着大象的冰箱)。

3、把冰箱门关上(打开门、装好大象后,获得关好门的冰箱)。

*/

//每个过程有一个阶段性的目标,依次完成这些过程,就能把大象装进冰箱。

//写法一:

1:冰箱开门(冰箱)。

2:冰箱装进(冰箱,大象)。

3:冰箱关门(冰箱) 。

//写法一变体:

1:(冰箱开门 冰箱)。

2:(冰箱装进 冰箱大象)。

3:(冰箱关门 冰箱)。

//写法二:

冰箱关门(冰箱装进(冰箱开门(冰箱),大象))。

//写法二变体:

(冰箱关门 (冰箱装进 (冰箱开门 冰箱) 大象))。

二、面向对象

为了把大象装进冰箱,需要做三个动作(或者叫行为)。每个动作有一个执行者,它就是对象。

/* 思路:

1、冰箱,你给我把门打开。

2、冰箱,你给我把大象装进去(或者说,大象,你给我钻到冰箱里去)。

3、冰箱,你给我把门关上。

*/

//依次完成这些动作,你就可以把大象装进去。

//写法一:

1:冰箱.开门()

2:冰箱.装进(大象)

3:冰箱.关门()

//写法二:

冰箱.开门().装进(大象).关门()

③ C语言 面向对象语言

1.设计对象:就是要搞清楚对角包含的数据(属性),如学生对象可能包含学号、姓名、性别、成绩等信息。还要搞清楚对该对象的数据进行的操作有哪些,如:设置类操作Set...(设置姓名、设置信息等),取得类操作Get...(取得姓名、取得成绩等),还有显示以象操作等。清楚了对象的属性与操作后,就可以按类(像C中结构体)的设计原则,设计对象类了,如:
class CStudent
{
public:
void SetName(char *name);
void SetScore(int score);
char *GetName();
int GetScore();
int PrintInfo();
...
private:
int xh;
char name[20];
char sex[3];
int score;
...
};
CStudent a[30]; //定义存储30个学生的信息

(2)通知对象完成任务,主要靠“消息”来实现的,具体来讲,消息可以理解为以象的public类的函数(如SetName函数),只有public类的属性,对象类的外部函数或对象才能直接使用。
如果设置学生i对象的姓名和成绩,可以在函数中把水消息传递a[i]对角,传递的方法如下:
a[i].SetName("zhangshan");
a[i].SetScore(80);
等。
对象a[i]收到SetName的消息后,把name赋值为zhangshan,把score赋值为80了。

不知这样解释,你能明明白吗?实际上
面向对象编程就是:
对象+对象+对象
而结构化编程是:
数据结构+算法
两种思想的区别是,前者把“数据结构”和“算法”捆绑为“对象类”,后者数据结构与算法是分离的,当数据结构发生变化时,算法必须跟着改变,否则不能正常工作。

④ 如何用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语言中,什么叫做面向对象,什么叫做面向过程

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

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

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

(5)c语言面向对象扩展阅读:

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

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

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

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

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

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

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

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

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

⑥ C语言,里的面向对象是什么意思

如果是C++对象是用来去访问的,因为在C++中,你没有权限访问一些私有的部分,你必须定义一个对象去访问,例:class cat;cat tiger;这里的tiger就是对象,他可以去访问任何参数。楼主,祝你成功

⑦ 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:冰箱.关门()
//写法二:
冰箱.开门().装进(大象).关门()

热点内容
java网站培训学校 发布:2024-05-05 23:43:11 浏览:40
淘宝搜索算法 发布:2024-05-05 23:37:07 浏览:998
sqlwhencasethen 发布:2024-05-05 23:27:51 浏览:641
模架编程软件 发布:2024-05-05 23:26:54 浏览:483
存储过程异常 发布:2024-05-05 23:24:03 浏览:399
winxp访问不了win7 发布:2024-05-05 23:05:23 浏览:734
算法牛 发布:2024-05-05 22:43:40 浏览:720
grublinux引导 发布:2024-05-05 22:37:56 浏览:216
unix高级编程第三版pdf 发布:2024-05-05 22:32:09 浏览:959
手机wap网站源码 发布:2024-05-05 22:27:44 浏览:260